将 NSData 数组保存到 CoreData
Posted
技术标签:
【中文标题】将 NSData 数组保存到 CoreData【英文标题】:Saving NSData Array to CoreData 【发布时间】:2018-01-18 07:23:03 【问题描述】:我正在从图库中挑选一张图片并将其转换为 NSData
。稍后我将其存储在 CoreData 中并稍后检索。但是,如果我从图库中选择 2 张图像,我想将它们的 `NSData 信息存储到一个数组中,并将该数组存储到 CoreData。但是如何将数组保存到我无法弄清楚的 CoreData 中。确实浏览过其他处理类似问题的 SO 帖子,但它们并没有太大帮助。
另外请注意..在这种情况下,我无法将数组存储到 Userdefaults
或 Document directory
,因为还有其他与图像相关的数据,如名称、数量等,它们都存储在 coredata 中,以后应该在表格视图中显示。如果仅使用其他方法存储图像而使用核心数据存储其他详细信息,则表格视图中将不会填充适当的数据..
【问题讨论】:
这个链接可以帮助你...***.com/questions/4266205/… 【参考方案1】:将实体用作ImagesArray
,将relationship
用于Image
的许多实体。反过来,图片将具有属性,例如imageData (Binary Data)
、Name (String)
等和relationship
到一个ImagesArray
。
见example
使用identifier
或其他属性创建ImagesArray
实体以进行识别。
然后使用属性imageData
(二进制数据)、name
(字符串)等创建Image
实体。
实体ImagesArray
将拥有relationship
images
到许多实体Image
。
实体 Image
将与 relationship
imagesArray
反向到一个实体 ImagesArray
在代码中,您将使用 imageData
、name
等创建实体 Image
的 set
。
然后创建ImagesArray
。
将set
的实体Image
添加到ImagesArray
的属性(关系)images
。
实体ImagesArray
将拥有set
的实体Image
。
【讨论】:
你能详细解释一下吗,@Alexey Kudlay @bvt,好的。稍晚一点 感谢您的回答,@Alexey Kudlay..我对您所说的有所了解,但不是全部。在这种情况下,哪个数组将保存我的图像..?Image
或 Images
.. 类型的数组?另外,图像将如何存储..? NSData
格式或图像本身..?
@bvt,我确实刷新了答案。另外,图像将如何存储..? - NSData
@bvt,我的决定有帮助吗?【参考方案2】:
在我看来,将图像保存到 CoreData 不是保存图像的正确方法。您应该将它们保存在应用沙箱中,然后将路径存储在 CoreData 中。 说你可以使用 NSValueTransformer 保存一个数组,你可以找到一个例子here。但可能最好的方法是在用户实体和图像实体之间创建一对多关系。
【讨论】:
我确实已经看到该链接@Andrea,但无法从中获得太多帮助..以上是关于将 NSData 数组保存到 CoreData的主要内容,如果未能解决你的问题,请参考以下文章
RestKit 0.20 使用 nsdata 发布数组 Json
如何在 Swift 中从 NSData 显示 PDF - 如何将 PDF 保存到文档文件夹 Swift - 如何在 Swift 中通过 WebView 从保存的 NSData 显示 PDF