尝试使用 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/
我正在尝试使用 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/