如何在Swift的NSUserDefaults中保存[AnyObject!] = []?

时间:2014-08-10 12:29:57

标签: swift nsuserdefaults xcode6

我需要保存一个类型的变量:

  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()

我需要将此变量转换为其他类型的数据吗?制作这个的正确形式是什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

这是不允许的。根据{{​​1}}类的documentationNSUserDefaults方法仅支持这些特定类型:

  

value参数只能是属性列表对象:setObject:forKey:NSDataNSStringNSNumberNSDateNSArray。对于NSDictionaryNSArray个对象,其内容必须是属性列表对象。

您可以使用NSDictionary替换Swift数组来解决此问题,NSMutableArray是允许的NSArray类的子类。