Я использую Core Data программно (т.е. не используя файлы модели данных t20 > ) почти так же, как показано в Apple Учебное пособие по основным данным. Поэтому моя проблема заключается в том, что когда я пытаюсь добавить атрибут к объекту с типом NSBooleanAttributeType
, он становится немного ошибкой. Когда я добавлю его в заголовочный файл подкласса NSManagedObject
(в учебнике это будет Run.h
) как
@property (retain) BOOL *booleanProperty;
сбой компиляции, говоря error: property 'booleanProperty' with 'retain' attribute must be of object type
.
Кажется, что некоторые места в Cocoa используют объекты NSNumber
для представления булевых элементов, поэтому я попытался установить его на
@property (retain) NSNumber *booleanProperty;
вместо этого. Однако это вызывает следующие ошибки времени выполнения:
*** -[NSAttributeDescription _setManagedObjectModel:]: unrecognized selector sent to instance 0x101b470
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSAttributeDescription _setManagedObjectModel:]: unrecognized selector sent to instance 0x101b470'
Используя GDB, я могу отследить это обратно к строке в моем исходном коде, где я добавляю свой объект к модели управляемого объекта:
[DVManagedObjectModel setEntities:[NSArray arrayWithObjects:myEntityWithABooleanAttribute, myOtherEntity]];
Итак, мой вопрос заключается в следующем: какой тип я должен установить booleanProperty в свой собственный заголовок класса?