美文网首页
如何使照片也符合Codable协议

如何使照片也符合Codable协议

作者: 王勋才 | 来源:发表于2021-11-22 22:34 被阅读0次
//
//  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")
    }
}


相关文章

网友评论

      本文标题:如何使照片也符合Codable协议

      本文链接:https://www.haomeiwen.com/subject/nlugtrtx.html