NSUser默认值

时间:2016-05-30 17:46:01

标签: swift nsuserdefaults sigabrt

我尝试过一个不起作用的答案:Swift Saving user NSUser Defaults

我的问题是我想永久保存:var myDict = [Int:String]()使用NSUser默认值。

我的代码是:

let userDefaults = NSUserDefaults.standardUserDefaults()

@IBAction func AddOneWord(sender: AnyObject) {
    if newWord.text != "" {

        myDict.updateValue(newWord.text!, forKey: 1)

        self.Word1Dictionnary.text = myDict[1]

        userDefaults.setValue(myDict, forKey: "1")
        userDefaults.synchronize()
    }
}

问题是,当我点击我的应用程序(正在运行)上的按钮时出现此错误:Thread 1 : Signal SIGABRT

1 个答案:

答案 0 :(得分:1)

NSUserDefaults只能存储属性列表对象。如Property List Programming Guide中所述:

  

虽然NSDictionary和CFDictionary对象允许它们的键是任何类型的对象,但如果键不是字符串对象,则集合不是属性列表对象。

您无法在[Int: String]中存储NSUserDefaults。密钥必须是字符串。