我正在使用核心数据作为其后端管理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