row*_*man 46 core-data objective-c
我应该在创建NSManagedObject对象时何时检查"使用基本数据类型的标量属性" ?
它会花多少钱(我的数据库会提高性能还是更轻量级)?
Evg*_*kov 47
在iOS 5和OSX 10.7标量属性无法自动生成之前,您必须添加setter和getter实现,这会导致一些惩罚.自动生成的属性已优化.我不知道有任何其他处罚.
标量和非标量属性在DB中由相同类型表示,因此DB的大小不会发生变化.
您应该根据您访问这些属性的方式选择何时使用标量.例如,如果要将它们添加到集合(NSArray,NSSet,NSDictionary),则需要在cocoa对象中包装标量属性.
小智 29
Core Data支持许多常见数据类型,如整数,浮点数,布尔值等.但是,默认情况下,数据模型编辑器将这些属性生成为
NSNumber托管对象子类中的属性.这通常会导致无休止的floatValue,boolValue,integerValue,在这些或类似的呼吁NSNumber在应用程序代码的对象.但是,我们也只是用自己正确的标量类型,例如,作为指定的那些属性
int64_t,float_t或者BOOL,它会与核心数据的工作.Xcode甚至在NSManagedObject生成器的保存对话框中有一个小复选框("使用原始数据类型的标量属性"),它可以为您完成此操作.
资料来源:objc.io - 数据模型和模型对象