可转换数据和二进制数据有啥区别

Posted

技术标签:

【中文标题】可转换数据和二进制数据有啥区别【英文标题】:What is the difference between transformable and binary data可转换数据和二进制数据有什么区别 【发布时间】:2013-01-10 11:21:05 【问题描述】:

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

【问题讨论】:

你得到什么错误?您要在该属性中存储什么类型的数据? (我指的是数据的业务视图,而不是正式的数据类型)。 这有帮助吗? ***.com/questions/3014498/… 【参考方案1】:

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

使用可转换属性,您可以读取和写入任何可与NSData 相互转换的类的实例。实际的数据存储与二进制属性相同,但 Core Data 在必要时使用NSValueTransformerNSData 进行转换。

例如,假设您的托管对象有一个图像属性,可以方便地直接读取和写入UIImage。除了,UIImage 不能保存在 Core Data 中。但是UIImage 可以与NSData 相互转换。因此,如果您使用可转换属性,您可以读取和写入 UIImage,同时仍将 NSData 保留在数据存储中。

【讨论】:

Tom,可转换数据是否会保留与外部存储相同的 NSData 行为? (即使 UI 中没有明确允许外部存储,或者 Blob 会开始出现在 Core Data Store 上)?该文档没有准确说明可转换属性将保存到外部记录或将应用的规则。你能分享你的经验吗? 我也有同样的问题。可转换属性类型中没有此类选项可存储在“外部存储”中。这是默认开启还是什么?

以上是关于可转换数据和二进制数据有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

byte和int,char类型有啥区别

mysql中的longblob和longtext有啥区别?

位、字符、字节、有啥区别

RCDATA 和用户定义的资源有啥区别?

BCD码和二进制码有啥区别

IP4和IP6有啥区别?