在这个问题上似乎存在相互矛盾的答案,我很困惑在Core Data数据库中存储图像的最佳方式是什么。
This question表示可转换,但this question表示使用二进制数据。
如果我只是想把它变成UIImage
/ UIImageView
,我会更好地使用它?
答案 0 :(得分:2)
我通常将图像存储在Core Data之外(在文档目录中或在包中),然后在Core Data中保存它们的路径。
我推荐的另一种方法是将图像保存为BLOB,但是在一个单独的实体中,这样就不会让所有数据陷入其他实体。
答案 1 :(得分:2)
可转换和二进制实际上是一回事。在这两种情况下,您都要保存二进制数据,不同之处在于数据在UIImage
和NSData
之间转换。
NSValueTransformer
在两者之间进行转换。您的代码可以直接读写UIImage
,值转换器会转换格式。 Apple在其中一个示例应用程序中包含了一个用于此目的的样本值转换器。NSData
。您将执行与值变换器相同的步骤,但您可以在不同的位置执行此操作。你将在你的对象上阅读和写作NSData
。任何一个都有效。值变换器很好,因为无论代码使用多少个位置,它都可以将转换保存在一个位置。但要么是好的,那么最方便的也是如此。