【发布时间】:2013-01-10 11:21:05
【问题描述】:
我最近开始研究核心数据,请任何人告诉我可转换数据和二进制数据之间的区别。我需要将 myClassObject 存储在核心数据中。我已创建属性并将其类型定义为二进制数据,但在存储时出现错误。
【问题讨论】:
-
你得到什么错误?您要在该属性中存储什么类型的数据? (我指的是数据的业务视图,而不是正式的数据类型)。
标签: ios objective-c core-data
我最近开始研究核心数据,请任何人告诉我可转换数据和二进制数据之间的区别。我需要将 myClassObject 存储在核心数据中。我已创建属性并将其类型定义为二进制数据,但在存储时出现错误。
【问题讨论】:
标签: ios objective-c core-data
使用二进制属性,您可以直接读取和写入 NSData 的实例。
使用可转换属性,您可以读取和写入任何可与NSData 相互转换的类的实例。实际的数据存储与二进制属性相同,但 Core Data 在必要时使用NSValueTransformer 与NSData 进行转换。
例如,假设您的托管对象有一个图像属性,可以方便地直接读取和写入UIImage。除了,UIImage 不能保存在 Core Data 中。但是UIImage 可以与NSData 相互转换。因此,如果您使用可转换属性,您可以读取和写入 UIImage,同时仍将 NSData 保留在数据存储中。
【讨论】: