【发布时间】:2019-11-02 18:05:09
【问题描述】:
我正在尝试将图像视图作为二进制数据保存到核心数据。在我的函数中,我已经保存了一个字符串,它运行良好。但是,当我尝试对 (theTitle2) 执行完全相同的操作时,它不起作用。我在下面的问题中也有 cdhandler 类,它保存在 app deleagate 中。我认为我要做的是以某种方式将图像视图转换为 uiimage 然后保存它。
func enterData() {
let appDeldeaget = UIApplication.shared.delegate as! AppDelegate
let context = appDeldeaget.persistentContainer.viewContext
let entity = NSEntityDescription.entity(forEntityName: "User", in: context)
let theTitle = NSManagedObject(entity: entity!, insertInto: context)
theTitle.setValue(enter.text, forKey: "userName")
let theTitle2 = NSManagedObject(entity: entity!, insertInto: context)
theTitle2.setValue(imageV.image, forKey: "pit")
do {
try context.save()
itemName.append(theTitle)
}
catch { }
//
}
应用代理
class cdHandler: NSObject {
class func saveObject(userName: String) -> Bool {
let context = getContext()
let entity = NSEntityDescription.entity(forEntityName: "User", in: context)
let managedObject = NSManagedObject(entity: entity!, insertInto: context)
managedObject.setValue(userName, forKey: "userName")
managedObject.setValue(userName, forKey: "pit")
do {
try context.save()
return true
} catch {
return false
}
}
}
【问题讨论】:
-
将图像保存为数据库中的二进制文件是一种非常快速的耗尽内存的方法。相反,您应该将其写入磁盘并将路径的引用与核心数据一起保存。
标签: core-data uiimageview uiimage binary-data swift5