Возможная ошибка основных данных: атрибуты с именем «updated» не работают правильно? - PullRequest
4 голосов
/ 11 июня 2009

У меня есть объект Core Data под названием Post. Один из его атрибутов называется updated и это дата. Сохраненный XML выглядит так:

<attribute name="updated" type="date">266164481.00000000000000000000</attribute>

Из этого я пришел к выводу, что данные хранятся правильно. Когда я читаю данные обратно, возвращается значение NSCFNumber, а не NSDate.

Однако, когда я изменил имя с updated на pubDate, оно работало правильно. updated не объявлен в заголовках для NSManagedObject или NSObject, поэтому я предполагаю, что это должен быть закрытый метод.

Кто-нибудь еще испытывал это? Должен ли я сообщить об этом в Apple?

Я понял это после нескольких часов царапин на голове / злости во рту.

Ответы [ 2 ]

7 голосов
/ 11 июня 2009

NSManagedObject уже имеет свойство с именем isUpdated, которое устанавливается на YES, когда объект имеет изменения, которые еще не были зафиксированы. Это допустимое имя получателя для значения BOOL, поэтому Core Data ничего не делает с вашим свойством updated. Вам следует переименовать вашу собственность.

3 голосов
/ 02 ноября 2012

Если вы переименовываете свою собственность, это не вариант, вы можете установить выражение значения FUNCTION($source, "updated") в модели отображения. Это заставит миграцию использовать метод с именем «updated» вместо обновленного свойства (например, [entity updated] вместо entity.updated).

В целом, я бы согласился с принятым ответом, если возможно, используйте имя, отличное от «обновленный».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...