Ошибка сохранения CoreData - PullRequest
2 голосов
/ 11 августа 2011

Я получаю NSValidationErrorObject при сохранении контекста моего управляемого объекта.Я пытаюсь сохранить пару объектов, и все они получают одну и ту же ошибку (из информации пользователя):

NSDetailedErrors = (
    Error Domain=NSCocoaErrorDomain
    Code=1680 "The operation couldn't be completed. (Cocoa error 1680.)"
    UserInfo=0x5d96fb0 {NSValidationErrorObject=<Alert: 0x5bb1fb0> (entity: Alert; id: 0x5bb0600 <x-coredata:///Alert/tBA1FD03B-5157-4523-AB34-A7C05869778F12> ;
        data: {
        ...
        identifier = "cap_024_0713_320117515151";
        ...}),
    NSValidationErrorKey=identifier,
    NSLocalizedDescription=The operation couldn\U2019t be completed. (Cocoa error 1680.), 
    NSValidationErrorPredicate=SELF MATCHES "", 
    NSValidationErrorValue=cap_024_0713_320117515151}

Меня смущает то, что я не могу найти причину, по которой этот ключ вызываетОшибка проверки.Это необязательно, и, насколько я знаю, на нем не включена проверка.Есть ли какое-то другое место, чтобы проверить правильность настройки?Может ли это сообщение об ошибке сообщать о неправильном поле?

identifier setup

Дополнительные тесты, которые я сейчас выполнил:

  • Сохранение послекаждое обновлениеБез изменений.
  • Свежий магазин.Без изменений.
  • Нет упоминаний о зарезервированных словах.
  • Никакой проверки вручную в файлах .m.
  • Если я удаляю атрибут «идентификатора», это работает.
  • Если я добавлю его обратно как «alertIdentifier», он не будет работать, но я использовал автоматическую миграцию, поэтому я попробую снова без миграции.
  • Если я удалю «идентификатор атрибута "и добавьте его снова, чтобы он выглядел так же, как и раньше, он работает!

Ответы [ 2 ]

1 голос
/ 12 августа 2011

имя атрибута identifier может быть проблематичным - попробуйте myIdentifier и посмотрите, работает ли оно

(у меня была проблема с вызовом чего-то description из-за значения в Obj-C)

Отредактировано для отражения комментариев и результатов:

Удалите атрибут все вместе, проверьте, не возникнет ли еще одна ошибка, затем добавьте ее обратно, если ошибки нет.

Удаление атрибута «идентификатора» и добавление его снова в XCode решило проблему.Вероятно, это было вызвано ошибкой моделировщика Xcode Core Data.

1 голос
/ 12 августа 2011

Я собираюсь предположить, что это конфликт имен, вызванный использованием «идентификатора» в качестве имени свойства. Это похоже на ошибку, которая возникает, когда люди используют «описание» в качестве имени свойства.

Чтобы проверить, измените его на что-то другое и посмотрите, работает ли он.

...