关于Core Data对象中setPrimitive*YourAttribute*
vs setPrimitiveValue:*value* forKey:@"*YourAttribute*"
形式的原始访问器方法是用于iPhone代码还是仅用于Mac,我得到了混合信号。一方面,苹果文档似乎没有提到它们可用于iOS,只有Mac OS X v10.5。另一方面,它们使用我的iPhone应用程序的代码,虽然有编译器警告,例如“找不到方法xxxx(返回类型)默认为'id')“。
有人可以这样或那样确认吗?
答案 0 :(得分:2)
在“核心数据编程指南”的Managed Object Accessor Methods部分概述中,它指出了为您自动生成原始访问器,但您需要声明属性以禁止编译器警告。你说使用原始访问器可以在你的代码中工作(即使有警告),所以它似乎在iOS中受支持。
Apple的文档页面似乎并不总是严格提及各种操作系统中给定功能的可用性。
答案 1 :(得分:0)
您可以改用NSNumber。对于bool,你可以和[NSNumber numberWithInt:0]
代表NO,[NSNumber numberWithInt:1]
代表YES。与整数,双精度,浮点数相同的逻辑。这种方式更容易。您的属性就像:NSNumber * myInteger,您只需要在检索或存储它时将其打包并取消装箱。我就是这样做的。