如何在swift中设置NSUserDefault中的Dictionary?

时间:2016-02-28 23:49:48

标签: swift nsdictionary nsuserdefaults nsmutabledictionary sigabrt

我有一个可变字典(以[Int:Int]的形式)并希望保存它。我会像那样使用NSUserDefaults:

.keyCode

但是我得到了一个错误:

  

线程1:信号SIGABRT

我不知道为什么。

1 个答案:

答案 0 :(得分:2)

setObject(_:forKey:)无法使用整数类型的键接受Dictionary。该方法需要属性列表对象,但myDic = [1:2]不是属性列表对象。

有两个相关的文件。

setObject(_:forKey:) of NSUserDefaults

  

value参数只能是属性列表对象:NSData,   NSStringNSNumberNSDateNSArrayNSDictionary。对于   NSArrayNSDictionary个对象,其内容必须是属性   列出对象。

About Property Lists

  

尽管NSDictionaryCFDictionary对象允许其键   如果键不是字符串对象,则为任何类型的对象   集合不是属性列表对象。

如果将整数键设置为Dictionary,则Dictionary对象不能用于setObject的值。您必须使用字符串作为键:

myDic = ["1": 2]