2.6. 类型(Core Data 应用程序实践指南)

  • 单精度浮点数与双精度浮点数:创建NSManagedObject紫雷师,如果实体中单精度或双精度浮点数类型,那么在子类里,相关特性的类型是NSNumber。
  • 小数:涉及货币时,建议设置为小数(decimal),精度高。特性类型为NSDecimalNumber,若要保留精度,只能使用NSDecimalNumber内置的方法。
  • 字符串String:可以存放字符数组(array of character)或普通文本(plain old text)。对应特性为NSString。
  • Boolean:对应特性为NSNumber,从NSNumber中获取Boolean值,只需向该实例发送boolValue消息即可。若想将NSNumber设置为某个Boolean值,可以使用numberWithBool方法。
  • 日期类型:对应特性为NSDate。
  • 二进制数据类型:照片、音频等二进制组成的连续BLOB。对应特性为NSData。例如,存照片时,用UIImagePNGRepresentation()或UIImageJPEGRepresentation(),把UIImage转换成NSData。获取照片时,用UIImage的imageWithData把UIImage转换成NSData。二进制数据类型对大数据文件比较合适,因为可以设置Allows External Storage属性,可以存储在数据库之外。Core Data 会自行判断把文件存放在数据库内效率高,还是存放在数据库外效率高。
  • 可变类型(transformable):存放Objective-C对象,可以存放任意类型的实例。对应特性类型为id。将id存放如存储区(或从存储区取出来),需要借助NSValueTransformer类的实例或NSValueTransformer子类的实例。NSValueTransformer类可以在属性NSData之间“透明地”执行转换。转换过程比较简单,尤其是实现了NSCoding协议时。假如实现了该协议,系统会提供默认的transformer,而这个transformer知道如何“压缩”(archive)或“解压缩”(un-archive)相关的对象。

 

  1. 修改name类型为String,quantity类型为Float。
  2. 添加photoData属性,类型为Binary Data。
  3. 添加listed属性,类型为Boolean,表示货品是否已经出现在购物清单中。
  4. 添加collected属性,类型为Boolean,表示是否已经拿到该货品。

posted on 2015-11-02 16:35  大木哥  阅读(198)  评论(0编辑  收藏  举报

导航