我最近开始研究核心数据,任何人都可以告诉我可转换和二进制数据之间的区别。我需要将myClassObject存储在核心数据中。我创建了属性并将其类型定义为二进制数据,但在存储时我收到错误。
答案 0 :(得分:24)
使用二进制属性,您可以直接读取和写入NSData
的实例。
使用可转换属性,您可以读取和编写可以转换为NSData
的任何类的实例。实际数据存储与二进制属性相同,但核心数据在必要时使用NSValueTransformer
转换为NSData
。
例如,假设您的托管对象具有图像属性,可以方便地直接读取和写入UIImage
。除此之外,UIImage
无法保存在Core Data中。但UIImage
可以转换为NSData
。因此,如果您使用了可转换属性,则可以在保留UIImage
数据存储的同时读取和写入NSData
。