Utilizzo i dati del core a livello di codice (ovvero non utilizzo dei file del modello di dati .xcdatamodel
) nello stesso modo illustrato in Core Data Utility Tutorial di Apple. Quindi il mio problema è che quando provo ad aggiungere un attributo a un'entità con il tipo NSBooleanAttributeType
, diventa un po 'buggato. Quando aggiungo al mio file di intestazione sottoclasse NSManagedObject
(nel tutorial, che sarebbe Run.h
) comeQual è il tipo per gli attributi booleani nelle entità Core Data?
@property (retain) BOOL *booleanProperty;
compilazione fallisce, dicendo error: property 'booleanProperty' with 'retain' attribute must be of object type
.
Sembra che alcuni posti a Cocoa utilizzano NSNumber
oggetti per rappresentare booleani, così ho provato a installare a
@property (retain) NSNumber *booleanProperty;
invece. Tuttavia, questa evoca i seguenti errori di runtime:
*** -[NSAttributeDescription _setManagedObjectModel:]: unrecognized selector sent to instance 0x101b470
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSAttributeDescription _setManagedObjectModel:]: unrecognized selector sent to instance 0x101b470'
Uso GDB, sono in grado di rintracciare questo ritorno alla linea nel mio codice di origine in cui aggiungo la mia entità al modello oggetto gestito:
[DVManagedObjectModel setEntities:[NSArray arrayWithObjects:myEntityWithABooleanAttribute, myOtherEntity]];
Quindi la mia domanda è questa: che tipo dovrei impostare booleanProperty nella mia intestazione della classe personalizzata?
anche vale la pena sottolineare che è "BOOL booleanProperty", senza *. Il * è solo per i puntatori, compresi i puntatori di oggetti. –
Vedere [questa risposta] (http://stackoverflow.com/a/3934284/164989) per una soluzione più appropriata. – opsidao
Questa risposta dovrebbe essere cancellata in quanto non è corretta. –