Swift 尝试在使用NSUserDefaults注册Int字典时设置plist值错误

Swift 尝试在使用NSUserDefaults注册Int字典时设置plist值错误,swift,cocoa-touch,nsuserdefaults,watchkit,foundation,Swift,Cocoa Touch,Nsuserdefaults,Watchkit,Foundation,我有以下导致我的应用程序崩溃的代码片段: let defaults = [1 : 0] NSUserDefaults.standardUserDefaults().registerDefaults(["highScores":defaults]) 这给了我以下错误: 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object { 1 = 0; } for key highScores' 但

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

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]不是一个普利斯特?它由存储在字典中的INT组成。

引用Apple文档:

尽管NSDictionary和CFDictionary对象允许它们的键 可以是任何类型的对象,如果键不是字符串对象,则 集合不是属性列表对象

您的代码应该通过将
let defaults=[“1”:0]
替换为您的第一个作业来工作