gpt4 book ai didi

ios - Swift:没有实例变量的对象的 NSCoding 实现

转载 作者:行者123 更新时间:2023-11-30 11:57:10 25 4
gpt4 key购买 nike

举个例子:初学者请耐心等待。我刚刚学习了如何通过编码/解码和归档/取消归档来持久化对象。现在的问题是我想保留一个 UIImage。推荐的方法是什么?

我当前的实现可以工作,但看起来很奇怪:

class Photo: NSObject, NSCoding {

static let documentsDirectory = FileManager.default.urls(for: .documentDirectory,in: .userDomainMask).first!
static let archiveURL = documentsDirectory.appendingPathComponent("photo")

static func saveToDisk(selectedPhoto: UIImage) {
NSKeyedArchiver.archiveRootObject(selectedPhoto, toFile: archiveURL.path)
}

static func loadFromDisk() -> UIImage? {
guard let unarchivedPhoto = NSKeyedUnarchiver.unarchiveObject(withFile: archiveURL.path) as? UIImage
else {return nil}
return unarchivedPhoto
}

func encode(with aCoder: NSCoder) {
}

convenience required init?(coder aDecoder: NSCoder) {
self.init()
}
}


有更好的方法吗?非常感谢。

最佳答案

希望这有帮助

请添加正确的文件网址来代替“文件名”

func convertImageToDataAndWrite()
{
let img:UIImage = UIImage(named: "img1.png")!
let data:NSData? = UIImageJPEGRepresentation(img, 0.7)
if data != nil
{
var check:Bool = NSKeyedArchiver.archiveRootObject(data!, toFile: "filename")

}

}

func readImagefromFile()
{
let data:NSData = NSKeyedUnarchiver.unarchiveObjectWithFile("filename") as! NSData!
var img:UIImage = UIImage(data: data)!


}

谢谢。

关于ios - Swift:没有实例变量的对象的 NSCoding 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47678272/

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