//
// 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协议
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 在Swift开发中,JSON数据序列化是一个避不开的工作,Swift由于类型安全的特性,对于像JSON这类弱类型的...
- 文章仅简单的通过例子说明如何将JSON中的String与Int直接转为Swift中的enum和遵守OptionSe...
- 在写项目开发中,编辑创建情况下提交数据的时候无可避免的会出现模型转换成对应的字典样式提交数据,在swift里面利用...
- 前言 在swift4.0后,苹果官方在Foundation框架中添加了Codable协议可用于JSON解析为Mod...
- Codable协议 开发中经常会碰到结构体或者类与 JSON数据的相互转换,尤其是JSON转Model 以前可以利...