将NSData数组保存到CoreData

时间:2018-01-18 07:23:04

标签: ios swift core-data

我正在从图库中选择一张图片并将其转换为NSData。稍后我将它存储在CoreData中并稍后检索。但是如果我从图库中选择2个图像,我想将它们的NSData信息存储到一个数组并将该数组存储到CoreData。但是如何将数组保存到CoreData,我无法弄清楚。是否经历过处理类似问题的其他SO帖子,但它们没有多大帮助。

另请注意..在这种情况下,我无法将数组存储到UserdefaultsDocument directory,因为还有其他与图像关联的数据,如name,qty等,它们都存储在coredata中然后他们应该在tableview中显示。如果仅使用其他方法存储图像,并使用核心数据存储其他详细信息,则表格视图中不会填充正确的数据。

2 个答案:

答案 0 :(得分:2)

将实体ImagesArrayrelationship一起用于许多实体Image。反过来,图片将具有例如属性。 imageData (Binary Data)Name (String)等,relationshipImagesArray。{/ p>

请参阅example

使用ImagesArray创建identifier实体或其他属性进行识别。

enter image description here

然后使用属性Image(二进制数据),imageData(字符串)等创建name实体。

enter image description here

实体ImagesArrayrelationship images提供给许多实体Image

实体Image将与relationship

一个实体imagesArray ImagesArray相反

enter image description here

在代码中,您将使用setImage等创建imageData个实体name

然后创建ImagesArray

set个实体Image添加到ImagesArray的属性(关系)images

实体ImagesArray将有set个实体Image

答案 1 :(得分:0)

在我看来,将图像保存到CoreData并不是保存图像的正确方法。您应该将它们保存在应用程序沙箱中,然后将其存储在CoreData路径中 假设您可以使用NSValueTransformer保存数组,您可以找到示例here。但可能最好的方法是在用户实体和图像实体一对多之间创建关系。