struct MyObject: Codeable { var name: String var something: [String]}myObjectsArray = [MyObject]() // filled with objectsUserDefaults.standard.set(myObjectsArray,forKey: "user_filters")
错误
解决方法 哇,我得到了它的工作:Terminating app due to uncaught exception
‘NSinvalidargumentexception’,reason: ‘Attempt to insert non-property
List object
这是使用可编辑对象保存数组的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") } }总结
以上是内存溢出为你收集整理的swift4 – 如何将带有对象的数组保存到UserDefaults全部内容,希望文章能够帮你解决swift4 – 如何将带有对象的数组保存到UserDefaults所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)