//
// 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协议
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 在Swift开发中,JSON数据序列化是一个避不开的工作,Swift由于类型安全的特性,对于像JSON这类弱类型的...
- 文章仅简单的通过例子说明如何将JSON中的String与Int直接转为Swift中的enum和遵守OptionSe...
- 在写项目开发中,编辑创建情况下提交数据的时候无可避免的会出现模型转换成对应的字典样式提交数据,在swift里面利用...
- 前言 在swift4.0后,苹果官方在Foundation框架中添加了Codable协议可用于JSON解析为Mod...
- Codable协议 开发中经常会碰到结构体或者类与 JSON数据的相互转换,尤其是JSON转Model 以前可以利...