栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Swift 3从UserDefaults保存和检索自定义对象

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Swift 3从UserDefaults保存和检索自定义对象

斯威夫特4注意

您可以再次在Playground中保存/测试您的值


迅捷3

UserDefaults需要在真实项目中进行测试。注意:无需强制同步。如果要在运动场中测试编码/解码,则可以使用键控存档器将数据保存到文档目录中的plist文件中。您还需要修复班级中的一些问题:

class Person: NSObject, NSCoding {    let name: String    let age: Int    init(name: String, age: Int) {        self.name = name        self.age = age    }    required init(prer deprer: NSCoder) {        self.name = deprer.depreObject(forKey: "name") as? String ?? ""        self.age = deprer.depreInteger(forKey: "age")    }    func enpre(with prer: NSCoder) {        prer.enpre(name, forKey: "name")        prer.enpre(age, forKey: "age")    }}

测试:

class ViewController: UIViewController {    override func viewDidLoad() {        super.viewDidLoad()        // setting a value for a key        let newPerson = Person(name: "Joe", age: 10)        var people = [Person]()        people.append(newPerson)        let enpredData = NSKeyedArchiver.archivedData(withRootObject: people)        UserDefaults.standard.set(enpredData, forKey: "people")        // retrieving a value for a key        if let data = UserDefaults.standard.data(forKey: "people"), let myPeopleList = NSKeyedUnarchiver.unarchiveObject(with: data) as? [Person] { myPeopleList.forEach({print( $0.name, $0.age)})  // Joe 10        } else { print("There is an issue")        }    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/613933.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号