我正在使用核心數據作爲其後端管理SQLite記錄的應用程序。我有一切工作與字符串和數字,但只是嘗試添加BOOL字段,似乎無法讓事情工作。核心數據和布爾設置
在.xcdatamodel中,我在我的對象中添加了一個名爲isCurrentlyForSale
的字段,該字段不是可選的,不是可變的,也不是索引的。屬性的類型設置爲布爾值,默認值爲NO。
當我從數據模型創建的類文件,添加了該屬性在.H頭中的樣板代碼是:
@property (nonatomic, retain) NSNumber * isCurrentlyForSale;
與
@dynamic isCurrentlyForSale;
沿.M實施文件。
我一直使用布爾作爲簡單布爾。我讀過我可以使用NSNumber的numberWithBool
和boolValue
方法,但是這對於如此簡單的事情來說似乎是一大堆額外的代碼。
標題中的@property可以更改爲簡單的BOOL嗎?如果有,還有什麼需要注意的?
感謝 -John
二傳手也不應該有一個「是」在其中。這就是爲什麼'@ property'具有'getter ='設置的原因。是的,您可以通過使用屬於Core Data的原始訪問器將「@屬性」更改爲BOOL。 – 2010-05-18 15:55:56
@Marcus是的,我知道setters不應該在它們中包含'Is',但是我已經把它放入了,因爲'setCurrentlyForSale:'已經被CD使用了(我知道'getter ='和'setter ='。你是說你可以在標題中將'NSNumber *'更改爲'BOOL',它會起作用嗎?那肯定會讓我感到驚訝。 – 2010-05-18 16:09:14