尝试使用 NSUserDefaults() 保存数组时出错

Error when trying to save array using NSUserDefaults()

我正在尝试使用 NSUserDefaults() 保存一个数组,这样即使在关闭程序后我也可以访问数据。在过去保存整数和字符串时,我总是设法成功地使用它。但是,当我尝试保存数组时,它不起作用。这是一个例子:

 var superarray = [AnyObject?]()
    superarray.append("Test")
    superarray.append(3)
    superarray.append(NSDate()) //random examples

NSUserDefaults.standardUserDefaults().setObject(superarray, forKey: "AnyKey")

它给出错误:"Cannot convert value of type '[AnyObject?]' to expected argument type 'AnyObject?' "

这是否意味着 .setObject() 不能接受数组?还有其他选择吗?

提前致谢!

NSUserDefaults 只能存储 属性 列表类型的对象。

提醒,plist 仅限于这些对象:

  • NSData
  • NSString
  • NSNumber
  • NSDate
  • NSArray
  • NSDictionary

在这里你可以使用 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/