我想在UserDefaults中保存一个对象数组
let thisAction = action(ts: String(Date().timeStamp()), winner: winner)
actions.append(thisAction)
UserDefaults.standard.set(actions, forKey: "currentMatch")
UserDefaults.standard.synchronize()
但我有以下错误:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'尝试插入非属性列表对象
答案 0 :(得分:0)
尝试Objective-C对象(NSArray,NSDictionary) https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/UserDefaults/AccessingPreferenceValues/AccessingPreferenceValues.html#//apple_ref/doc/uid/10000059i-CH3-97383。
声明可以保存,获取NSData,NSDate,NSString,NSNumber,NSArray,NSDictionary和NSURL类型的对象。
所以,一个可能的解决方案是:
NSArray
Swift数组和字典可以分别桥接到NSDictionary
,public class ProductController{
...
public ViewResult List(int page = 1){
。
您也可以使用Codable,它也可以序列化属性列表。