NSManagedObject
在创建对象期间,何时应检查“对原始数据类型使用标量属性” ?
我会花多少钱(我的数据库会提高性能还是更轻量级)?
问问题
14823 次
2 回答
53
在 iOS 5 和 OSX 10.7 之前,标量属性无法自动生成,您必须添加 setter 和 getter 实现,这会导致一些损失。自动生成的属性得到优化。我不知道有任何其他处罚。
标量和非标量属性在 DB 中由相同的类型表示,因此 DB 的大小不会发生变化。
您应该根据访问这些属性的方式来选择何时使用标量。例如,如果要将标量属性添加到集合(NSArray、NSSet、NSDictionary)中,则需要将标量属性包装在可可对象中。
于 2012-12-11T15:23:02.187 回答
37
Core Data 支持许多常见的数据类型,如整数、浮点数、布尔值等。但是,默认情况下,数据模型编辑器将这些属性生成为
NSNumber
托管对象子类中的属性。这通常会导致在应用程序代码中对这些对象进行无休止floatValue
的 、boolValue
、integerValue
或类似调用。NSNumber
但是我们也可以只使用正确的标量类型来指定这些属性,例如 as
int64_t
、float_t
或BOOL
,并且它将适用于 Core Data。Xcode 甚至在生成器的保存对话框中有一个小复选框NSManagedObject
(“为原始数据类型使用标量属性”),它会为您完成此操作。
于 2014-04-22T05:48:37.523 回答