美文网首页
范型的一个简单应用

范型的一个简单应用

作者: 王勋才 | 来源:发表于2022-01-14 16:15 被阅读0次

```swift

import SwiftUI

struct TextItem:Identifiable,Codable{

    var id = UUID().uuidString

    var text:String = ""

}

//终于写出了范型,这个太好用了。每一种语法的出现都是为了解决一种问题,提供某种方便。

//使用方法 let dataSaver = DataSaver<你要保存的数据类型>()

class DataSaver<T:Codable>{

    func saveData(items:[T],forkey:String){

        let encode = JSONEncoder()

        do{

            let data = try encode.encode(items)

            UserDefaults.standard.set(data, forKey: forkey)

        }

        catch

        {

            print(error.localizedDescription,"保存数据失败")

        }

    }

    func fetchData(forkey:String)->[T]{

        var results:[T] = []

        let decode = JSONDecoder()

        do{

            if let data = UserDefaults.standard.data(forKey: forkey){

                results =try decode.decode([T].self, from: data)

            }

        }

        catch

        {

        }

        return results

    }

}

class ViewModel:ObservableObject{

    //尖括号里指定范型的具体类型

    let dataSaver = DataSaver<TextItem>()

    @Published var textEditors:[TextItem] = []{

        didSet{

            saveData()

        }

    }

    let textEditorsSaverKey:String = "textEditorsSaverKey"

    init(){

        fetchData()

    }

    func saveData(){

        dataSaver.saveData(items: textEditors, forkey: textEditorsSaverKey)

    }

    func fetchData(){

        self.textEditors = dataSaver.fetchData(forkey: textEditorsSaverKey)

    }

}

//苹果应用商店|搜|王勋才|有我全部作品

```

相关文章

  • 范型的一个简单应用

    ```swift import SwiftUI struct TextItem:Identifiable,Coda...

  • HTTP、HTTPS

    WWW: WWW是一个基于HTTP的客户-服务器应用系统,即属于客户-服务器范型的分布式计算应用 HTTP协议: ...

  • Swift - 范型(简单了解)

    文章地址:http://goodrui.me/2017/08/02/Swift-%E8%8C%83%E5%9E%8...

  • python 函数 map 、lambda

    开篇就要提到一个大的话题:编程范型。什么是编程范型?引用维基百科中的解释: 编程范型或编程范式(英语:Progra...

  • CoreJava笔记 - 范型程序设计(2)

    范型代码和Java虚拟机 关键知识:类型擦除Java的范型是编译器层次的范型,而在Java虚拟机上并没有范型类。在...

  • Rust范型(2) - 范型约束

    trait中的范型 在定义trait时,可以使用范型: Dagongren是一个trait,包含了banzhuan...

  • Objective-C 范型

    系统库范型 Objective C支持轻量级的范型。在编写自定义的范型类之前,我们先来看看Cocoa Touch的...

  • CoreJava笔记 - 范型程序设计(5)

    反射与范型 由于类型擦除,反射无法得到关于范型类型参数的信息。 范型的Class类在Java的反射库中,Class...

  • 泛型简单的应用总结:

    泛型可以应用在类,方法,接口中,可以定义泛型类,泛型方法,泛型接口三种 利用泛型的好处: 可以有效的减少代...

  • OC泛型简单应用

    从 Xcode 7 以后 Objective-C支持了泛型 (Generics) 的使用。泛型就是没有规定类型,在...

网友评论

      本文标题:范型的一个简单应用

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