我想将从UIImagePickerCollector获得的UIImage保存到CoreData属性“img”中,该属性是二进制数据类型。我只是尝试使用以下代码进行保存。
let sampleimage = profileimg?.image
var dataImage: Data? = nil
if let aSampleimage = sampleimage {
dataImage = aSampleimage.jpegData(compressionQuality: 0.0)
}
let imag = Data()
let newUser = NSEntityDescription.insertNewObject(forEntityName: "Person", into: Constant.context!)
newUser.setValue(self.txtName!.text, forKey: Constant.CDName)
newUser.setValue(self.txtEmail!.text, forKey: Constant.CDEmail)
newUser.setValue(self.txtPassword!.text, forKey: Constant.CDPassword)
newUser.setValue(yourDate, forKey: Constant.CDDob)
newUser.setValue(imag, forKey: Constant.CDImage)
当我尝试运行时,它没有显示任何错误。但我不知道图像是否保存在CoreData中。我该如何检查它?
当我尝试将图像分配到我的表格视图单元格时,它显示以下错误。请证明正确的解决方案。
2条答案
按热度按时间mrphzbgm1#
NSData
到UIImage
的转换错误。请尝试使用UIImage(data:imageData,scale:1.0)
,假定图像的比例为1。对于您的代码,它可能是这样的:
其它变化可以是
正在保存图像,在语句
newUser.setValue(imag, forKey: Constant.CDImage)
中,您使用的是imag
,但实际图像包含在dataImage
中。请更正至
同样对于被剪下的共享代码,我没有看到任何
let imag = Data()
的使用,如果它没有被使用到你共享的代码部分之外,你可以删除它。vxf3dgd42#
如果要保存图像,可以将字段设置为二进制数据,并且必须转换并保存到核心数据
UI图像到数据
当你拿
数据到UIImage
因此,您必须创建coredata实体的对象,然后将字段创建为二进制数据,并保存UIImage的数据,当您想要获取时,再次需要将数据转换为图像,并分配给UIImageview。