我有以下导致我的应用程序崩溃的代码片段:

let defaults = [1 : 0]
NSUserDefaults.standardUserDefaults().registerDefaults(["highScores":defaults])

这给了我以下错误:
'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object {
1 = 0;
} for key highScores'

但我不明白。为什么[1:0]不是一个plist?它是由储存在字典中的整数组成的。

最佳答案

引用苹果文档:
尽管NSDictionary和CFDictionary对象允许它们的键
是任何类型的对象,如果键不是字符串对象,则
集合不是属性列表对象
您的代码应该通过用let defaults = ["1" : 0]替换第一个赋值来工作。

10-08 07:46