【问题标题】:How to save a imageview as binary data in Swift 5如何在 Swift 5 中将图像视图保存为二进制数据
【发布时间】: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


【解决方案1】:

如果要将图像保存在核心数据中,请将图像转换为数据然后存储。喜欢

let data = imageV.image?.jpegData(compressionQuality: 1) //image in JPEG format
or
let data = imageV.image?.pngData() // image in PNG format

theTitle2.setValue(data, forKey: "pit")

【讨论】:

  • 我仍然在 ** let theTitle2 = NSManagedObject(entity: entity!, insertInto: context)** 遇到运行时错误,说明致命错误:在展开可选值时意外发现 nil 2019-07- 30 22:56:16.431284-0400 ramitSethi[2668:271665] 致命错误:在展开可选值时意外发现 nil
猜你喜欢
  • 1970-01-01
  • 2019-10-14
  • 2019-10-26
  • 2016-07-12
  • 1970-01-01
  • 2020-05-22
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多