可转换数据和二进制数据之间有什么区别

时间:2013-01-10 11:21:06

标签: ios objective-c core-data

我最近开始研究核心数据,任何人都可以告诉我可转换和二进制数据之间的区别。我需要将myClassObject存储在核心数据中。我创建了属性并将其类型定义为二进制数据,但在存储时我收到错误。

1 个答案:

答案 0 :(得分:24)

使用二进制属性,您可以直接读取和写入NSData的实例。

使用可转换属性,您可以读取和编写可以转换为NSData的任何类的实例。实际数据存储与二进制属性相同,但核心数据在必要时使用NSValueTransformer转换为NSData

例如,假设您的托管对象具有图像属性,可以方便地直接读取和写入UIImage。除此之外,UIImage无法保存在Core Data中。但UIImage可以转换为NSData。因此,如果您使用了可转换属性,则可以在保留UIImage数据存储的同时读取和写入NSData