swift4 – 如何将带有对象的数组保存到UserDefaults
发布时间:2020-12-14 04:49:44 所属栏目:百科 来源:网络整理
导读:My Object符合新的 Swift 4 Codeable协议.如何在UserDefaults中保存这些对象的数组? struct MyObject: Codeable { var name: String var something: [String]}myObjectsArray = [MyObject]() // filled with objectsUserDefaults.standard.set(myObjectsArr
My Object符合新的
Swift 4 Codeable协议.如何在UserDefaults中保存这些对象的数组?
struct MyObject: Codeable { var name: String var something: [String] } myObjectsArray = [MyObject]() // filled with objects UserDefaults.standard.set(myObjectsArray,forKey: "user_filters") 错误
解决方法
哇,我得到了它的工作:
这是使用可编辑对象保存数组的Swift 4语法: 我的解决方案是将其编码为JSON对象并保存: static var getAllObjects: [MyObject] { let defaultObject = MyObject(name: "My Object Name") if let objects = UserDefaults.standard.value(forKey: "user_objects") as? Data { let decoder = JSONDecoder() if let objectsDecoded = try? decoder.decode(Array.self,from: objects) as [MyObject] { return objectsDecoded } else { return [defaultObject] } } else { return [defaultObject] } } static func saveAllObjects(allObjects: [MyObject]) { let encoder = JSONEncoder() if let encoded = try? encoder.encode(allObjects){ UserDefaults.standard.set(encoded,forKey: "user_objects") } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |