将图像保存到核心数据?

Posted

技术标签:

【中文标题】将图像保存到核心数据?【英文标题】:Saving image to Core Data? 【发布时间】:2017-08-05 11:45:06 【问题描述】:

我想把这些小头像解析成核心数据,我有这个功能使用AlamofireImage。

但是,在将结果设置为核心数据属性时,出现此错误。

无法分配“数据”类型的值?输入“NSData?”

这是我的代码:

self.managedObjectContext = self.coreDataManager.managedObjectContext
let contactAvatar = UIImagePNGRepresentation(image);
contact.avatar = contactAvatar
do 
    try self.managedObjectContext?.save()
 catch 
    fatalError("Failure to save context: \(error)")

我的核心数据条目是二进制数据。我认为我应该能够正确保存为这种格式?

【问题讨论】:

【参考方案1】:

有两种选择:

在模型中将属性avatar声明为Data(首选) 桥牌contactAvatar as NSData

【讨论】:

你不能在模型中将Data声明为一个类型?只是二进制数据 DataNSData 的 Swift 3 等价物 即时保存你不能作为核心数据实体中的属性,NSData 和 Data 不存在作为选项 fpr 保存到 (NS)Data == 二进制数据 根据我之前的经验,从 CoreData 保存/加载数据非常耗时。而不是这样做,您可以将图像作为文件保存在您的一个应用程序的文件夹中,然后存储到该文件的链接,这样会更有效。

以上是关于将图像保存到核心数据?的主要内容,如果未能解决你的问题,请参考以下文章

将图像保存到核心数据中并将其提取到 tableview 单元格中

UITableViewCell 图像 + 保存到核心数据

SwiftUI ImagePicker 保存(图像-> UIImage--> 数据)到核心数据

在核心数据中保存 PHAsset?

用户注销时从队列中处理块执行(将图像保存在核心数据中的块)

将照片保存到核心数据