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

Posted

技术标签:

【中文标题】将图像保存到核心数据中并将其提取到 tableview 单元格中【英文标题】:Saving image into core data and fetching it into tableview cell 【发布时间】:2015-10-06 14:42:58 【问题描述】:

我使用实体“用户”和属性“用户名”设置了 CoreData(当我在 uitextfield 中键入内容时,它保存到核心数据中,并且我从核心数据中读取到 tableview 单元格)。这就像一种魅力。但是我也想显示从 imagepickercontroller 中选择的图片,当我选择图片时它也可以正常工作,但是当我点击保存时,我认为我已经保存了它。我不知道它是否被保存,因为我消除了所有错误,所以我没有错误,但它不会将该图片读入 tableview 单元格。我将二进制数据类型的新属性“图像”放入核心数据文件,但代码不起作用。

这是保存到核心数据的代码

let newUser = NSEntityDescription.insertNewObjectForEntityForName("Users", inManagedObjectContext: context)

newUser.setValue(nameField.text, forKey: "username")

let picture = UIImageJPEGRepresentation(photoImageView.image!, 1); 
newUser.setValue(picture, forKey: "image") 

这是tableview从核心数据中读取数据的代码

cell.imageView!.image = person.valueForKey("image") as? UIImage

我也试过

[UIImage, imageWithData:self.myEvent.picture];

但是 Swift 2.0 没有 imageWithData 这个语法

【问题讨论】:

【参考方案1】:

person.valueForKey("image") as? UIImage 不起作用。

使用UIImage(data:)将检索到的NSData转换为UIImage。

【讨论】:

让图片对象在第一个 vc 中,tableview 在第二个,那么在第二个 vc 中如何获取让图片对象? 在第二个 vc 中尝试过,但它不起作用 let image : UIImage = UIImage(data: person.valueForKey("image") as? UIImage) 它不应该是as? UIImage,你把它保存为NSDataUIImageJPEGRepresentation。至于将数据传递给另一个视图控制器,您可以使用prepareForSegue 这段代码用于从核心数据中检索数据 cell.textLabel!.text = person.valueForKey("username") as?字符串,uiimage如何使用相同的原理? 你不能,因为你没有将数据保存为 UIImage。您将其保存为带有 jpeg 表示的 NSData。将其检索为 NSData 并使用 UIImage(data:) 转换为 UIImage【参考方案2】:

为了从核心数据中检索图像,我使用了这个,它终于可以工作了。

let image = person.valueForKey("image") as? NSData
    cell.imageView!.image = UIImage(data: image!)

【讨论】:

以上是关于将图像保存到核心数据中并将其提取到 tableview 单元格中的主要内容,如果未能解决你的问题,请参考以下文章

排查核心数据死锁?

如何从 SQL Server 表中读取图像数据(存储 word 文档)并将其保存到本地文件夹

将 TPanel 绘制到图像并将其保存在数据集中

如何从API加载图像并将其保存到sqlite数据库中?

如何在不使用画布的情况下将整个 div 数据转换为图像并将其保存到目录中?

SQLDF 提取值并将其保存到文本文件