Core Data 原始访问器方法对 iPhone 有效吗?
我收到了关于 Core 中的原始访问器方法(形式为 setPrimitive*YourAttribute*
与 setPrimitiveValue:*value* forKey:@"*YourAttribute*"
的混合信号)数据对象适用于 iPhone 代码或仅适用于 Mac。一方面,Apple 文档似乎没有提到它们可用于 iOS,而仅适用于 Mac OS X v10.5。另一方面,它们适用于我的代码。 iPhone应用程序的代码,尽管有编译器警告,例如“未找到方法 xxxx(返回类型默认为“id”)”
有人可以通过一种或另一种方式确认吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 托管对象访问器方法 部分指出,原始访问器是自动为您生成的,但您需要声明属性来抑制编译器警告。你说在你的代码中使用原始访问器是有效的(即使有警告),所以它似乎在 iOS 中受支持。
Apple 的文档页面似乎并不总是严格提及特定功能在各种操作系统中的可用性。
In the Overview of the Managed Object Accessor Methods section of Core Data Programming Guide it states that primitive accessors are automatically generated for you, but you will need to declare the properties to suppress compiler warnings. You say using primitive accessors works in your code (even with the warnings) so it seems like it's supported in iOS.
It appears that Apple's documentation pages aren't always rigorous in mentioning a given feature's availability in the various OSes.
您可以使用 NSNumber 代替。例如,对于布尔值,您可以使用
[NSNumber numberWithInt:0]
表示 NO,使用[NSNumber numberWithInt:1]
表示 YES。与整数、双精度数、浮点数的逻辑相同。这样就容易多了。您的属性将类似于: NSNumber *myInteger ,您只需在检索或存储它时对其进行装箱和拆箱即可。我就是这么做的。You could use NSNumber instead. For bools you would have and
[NSNumber numberWithInt:0]
for NO and[NSNumber numberWithInt:1]
for YES for example. Same logic with integers, doubles, float. It's much easier this way. Your property would be like: NSNumber *myInteger , you would only have to box and unbox it when you retrieve or store it. That's how I would do it.