Я использую основные данные программно (т. Е. Не используя файлы данных модели .xcdatamodel
) почти таким же образом, как показано в статье Core Data Utility Tutorial от Apple. Поэтому моя проблема заключается в том, что когда я пытаюсь добавить атрибут к сущности с типом NSBooleanAttributeType
, он становится немного ошибкой. Когда я добавляю его в мой файл заголовка подкласса NSManagedObject
(в учебнике, что бы Run.h
), какКаков тип булевых атрибутов в объектах Core Data?
@property (retain) BOOL *booleanProperty;
компилирование терпит неудачу, говоря error: property 'booleanProperty' with 'retain' attribute must be of object type
.
Похоже, что некоторые места в какао используют 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 в свой собственный заголовок класса?
также стоит отметить, что это «BOOL booleanProperty», без *. * - только для указателей, включая указатели объектов. –
См. [Этот ответ] (http://stackoverflow.com/a/3934284/164989) для более подходящего решения. – opsidao
Этот ответ следует удалить, поскольку он просто неверен. –