我正在从图库中选择一张图片并将其转换为NSData
。稍后我将它存储在CoreData中并稍后检索。但是如果我从图库中选择2个图像,我想将它们的NSData信息存储到一个数组并将该数组存储到CoreData。但是如何将数组保存到CoreData,我无法弄清楚。是否经历过处理类似问题的其他SO帖子,但它们没有多大帮助。
另请注意..在这种情况下,我无法将数组存储到Userdefaults
或Document directory
,因为还有其他与图像关联的数据,如name,qty等,它们都存储在coredata中然后他们应该在tableview中显示。如果仅使用其他方法存储图像,并使用核心数据存储其他详细信息,则表格视图中不会填充正确的数据。
答案 0 :(得分:2)
将实体ImagesArray
与relationship
一起用于许多实体Image
。反过来,图片将具有例如属性。 imageData (Binary Data)
,Name (String)
等,relationship
与ImagesArray
。{/ p>
请参阅example
使用ImagesArray
创建identifier
实体或其他属性进行识别。
然后使用属性Image
(二进制数据),imageData
(字符串)等创建name
实体。
实体ImagesArray
将relationship
images
提供给许多实体Image
。
实体Image
将与relationship
imagesArray
ImagesArray
相反
在代码中,您将使用set
,Image
等创建imageData
个实体name
。
然后创建ImagesArray
。
将set
个实体Image
添加到ImagesArray
的属性(关系)images
。
实体ImagesArray
将有set
个实体Image
。
答案 1 :(得分:0)
在我看来,将图像保存到CoreData并不是保存图像的正确方法。您应该将它们保存在应用程序沙箱中,然后将其存储在CoreData路径中 假设您可以使用NSValueTransformer保存数组,您可以找到示例here。但可能最好的方法是在用户实体和图像实体一对多之间创建关系。