如何使照片也符合Codable协议

//
//  ViewModel.swift
//  SavePhotoApp
//
//  Created by wangxuncai on 2021/11/23.
//

import Foundation
import SwiftUI

extension UIImage {
    var data: Data? {
        if let data = self.jpegData(compressionQuality: 1.0) {
            return data
        }else if let data = self.pngData() {
            return data
        }  else {
            return nil
        }
    }
}

extension Data {
    var image: UIImage? {
        if let image = UIImage(data: self,scale: 1) {
            return image
        } else {
            return nil
        }
    }
}

struct PhotoCardModel:Identifiable,Codable{
    var id = UUID().uuidString
    var title:String
    var photo:Data
}

class ViewModel:ObservableObject{
    @Published var photoCards:[PhotoCardModel] = []{
        didSet{
            saveData()
        }
    }
    
    init(){
        getData()
    }
    func getData(){
        guard let data = UserDefaults.standard.data(forKey: "photoCards") else{return}
        self.photoCards = try! JSONDecoder().decode([PhotoCardModel].self, from: data)
    }
    func saveData(){
        let jsonData = try? JSONEncoder().encode(photoCards)
        UserDefaults.standard.set(jsonData, forKey: "photoCards")
    }
}


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容