我正在尝试使用NSUserDefaults()
保存数组,以便即使在关闭程序后也可以访问数据。在过去的Ints和Strings中,我总是成功地使用它。但是,当我尝试保存数组时,它不起作用。这是一个例子:
var superarray = [AnyObject?]()
superarray.append("Test")
superarray.append(3)
superarray.append(NSDate()) //random examples
NSUserDefaults.standardUserDefaults().setObject(superarray, forKey: "AnyKey")
它给出错误:"无法转换类型' [AnyObject?]'预期的参数类型' AnyObject?' "
这是否意味着.setObject()
无法接受数组?还有另一种选择吗?
提前致谢!
答案 0 :(得分:1)
NSUserDefaults只能存储具有属性列表类型的对象。
提醒,plist仅限于这些对象:
这里你可以使用NSMutableArray而不是你的可变数组
let superarray = NSMutableArray();
superarray.addObject("Test")
superarray.addObject(3)
superarray.addObject(NSDate())
NSUserDefaults.standardUserDefaults().setObject(superarray, forKey: "AnyKey")
此处有更多详情: http://www.codingexplorer.com/nsuserdefaults-a-swift-introduction/