我有一个可变字典(以[Int:Int]的形式)并希望保存它。我会像那样使用NSUserDefaults:
.keyCode
但是我得到了一个错误:
线程1:信号SIGABRT
我不知道为什么。
答案 0 :(得分:2)
setObject(_:forKey:)
无法使用整数类型的键接受Dictionary
。该方法需要属性列表对象,但myDic = [1:2]
不是属性列表对象。
有两个相关的文件。
setObject(_:forKey:) of NSUserDefaults
value
参数只能是属性列表对象:NSData
,NSString
,NSNumber
,NSDate
,NSArray
或NSDictionary
。对于NSArray
和NSDictionary
个对象,其内容必须是属性 列出对象。
尽管
NSDictionary
和CFDictionary
对象允许其键 如果键不是字符串对象,则为任何类型的对象 集合不是属性列表对象。
如果将整数键设置为Dictionary
,则Dictionary
对象不能用于setObject
的值。您必须使用字符串作为键:
myDic = ["1": 2]