gpt4 book ai didi

ios - 将图像转换为 NSData 以保存在核心数据中

转载 作者:搜寻专家 更新时间:2023-11-01 06:05:09 24 4
gpt4 key购买 nike

我正在尝试将图像存储在核心数据中。

我的 core data 属性文件要求图像位于 NSData 中:

 import Foundation
import CoreData

extension Item {

@nonobjc public class func fetchRequest() -> NSFetchRequest<TaskItem> {
return NSFetchRequest<TaskItem>(entityName: "Item");
}

@NSManaged public var itemImage: NSData?
}

然而,当我尝试使用以下方式保存到核心数据时:

    @IBAction func saveBtnTapped(_ sender: AnyObject) {


let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

let item = Item(context: context)

let imageData: NSData = UIImageJPEGRepresentation(taskImage.image!, 0.2)

item.itemImage = imageData

(UIApplication.shared.delegate as! AppDelegate).saveContext()

}
navigationController?.popViewController(animated: true)
}

我收到以下错误:

Cannot convert value of type 'Data?' to specified type 'NSData'

我以为我做得对,但它对我不起作用。有人可以告诉我如何解决它吗?

提前致谢。

最佳答案

UIImageJPEGRepresentation 返回一个 Data? 值。这可以桥接到 NSData?as。然后使用可选绑定(bind)(if let) 安全地打开可选的:

if let imageData = UIImageJPEGRepresentation(...) as NSData? {
// Now `imageData` is a `NSData` object.
item.itemImage = imageData
} else {
// Conversion to JPEG data failed.
}

您还应该查阅“二进制大数据对象 (BLOB)”部分在“核心数据编程指南”中关于将二进制数据直接存储在数据库中,以及可能的替代方案。

关于ios - 将图像转换为 NSData 以保存在核心数据中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39572004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com