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

S.J*_*S.J 15 core-data objective-c ios

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

Tom*_*ton 25

使用二进制属性,您可以NSData直接读写实例.

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

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