简体   繁体   English

将UIImage保存为UserDefault作为Array,Swift

[英]Save UIImage to UserDefault as Array , Swift

I have one UiTableView , I need to have one Array Data Saving UIimage for Temporary time . 我有一个UiTableView,我需要暂时有一个Array Data Saving UIimage

I Think if I use UserDefault it's not bad solution but I don't know how save in UserDefault I know I don't use .stringArray I don't know how can I Save Image in Array Default 我想如果我使用UserDefault它是不错的解决方案,但我不知道如何保存UserDefault我知道我不使用.stringArray我不知道如何在数组默认情况下保存图像

struct Constants {

    static let myKeyImage = "myKeyIMG”

}


 var arrayiMG = [String]()
  self.defaults.stringArray(forKey: Constants.myKeyImage)


if (self.defaults.stringArray(forKey: Constants.myKeyImage) != nil)
{
arrayUrl = self.defaults.stringArray(forKey: Constants.myKeyURL)!
}

I want to save in .png or jpg Like this 我想保存在.png或jpg中

func plane(from anchor: ARPlaneAnchor) -> SCNNode {
    if (`extension`.lowercased() == "png") {
        data = UIImagePNGRepresentation(image)
    }
    else if (`extension`.lowercased() == "jpg") {
        data = .uiImageJPEGRepresentation()
    }

}

Something like this would work: 像这样的东西会起作用:

extension UserDefaults {
    func imageArray(forKey key: String) -> [UIImage]? {
        guard let array = self.array(forKey: key) as? [Data] else {
            return nil
        }
        return array.flatMap() { UIImage(data: $0) }
    }

    func set(_ imageArray: [UIImage], forKey key: String) {
        self.set(imageArray.flatMap({ UIImagePNGRepresentation($0) }), forKey: key)
    }
}

Usage: 用法:

let imageArray = [image1, image2, image3]
UserDefaults.standard.set(imageArray, forKey: "images")

let images = UserDefaults.standard.imageArray(forKey: "image")

However, I wouldn't recommend storing an array of images in UserDefaults . 但是,我不建议在UserDefaults存储图像数组。 Storing the images as files would probably be more appropriate. 将图像存储为文件可能更合适。 You could then store their paths in UserDefaults . 然后,您可以将其路径存储在UserDefaults

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM