我需要保存一个类型的变量:
var array1: [AnyObject!] = []
我试过这个但是没有保存:
var key = "keySave"
var defaults = NSUserDefaults.standardUserDefaults()
array1.append(["key1": "val1", "key2": "val2"])
array1.append(["key2": "val3", "key4": "val4"])
defaults.setObject(array1, forKey: key)
defaults.synchronize()
我需要将此变量转换为其他类型的数据吗?制作这个的正确形式是什么?
谢谢!
答案 0 :(得分:3)
这是不允许的。根据{{1}}类的documentation,NSUserDefaults
方法仅支持这些特定类型:
value参数只能是属性列表对象:
setObject:forKey:
,NSData
,NSString
,NSNumber
,NSDate
或NSArray
。对于NSDictionary
和NSArray
个对象,其内容必须是属性列表对象。
您可以使用NSDictionary
替换Swift数组来解决此问题,NSMutableArray
是允许的NSArray
类的子类。