首页 文章

在NSUserDefaults Xcode中存储和更新Swift Dictionary

提问于
浏览
3

我想在用户输入值时存储和更新Dictionary . 在此代码之前似乎一切正常,应用程序崩溃:

override func viewDidLoad() {
    super.viewDidLoad()

    if NSUserDefaults.standardUserDefaults().objectForKey("dict") != nil  {
        answersSaved = NSUserDefaults.standardUserDefaults().objectForKey("dict") as [String:String]
    }
}

错误消息显示“anyObject不能转换为[String:String] . 它提供添加!之后,然后应用程序崩溃 .

dict是我的Dictionary变量,其中字符串为值 .

我也有更新NSUserDefaults的代码,但它似乎正在运行 .

非常感谢提前!

1 回答

  • 2

    猜猜您的Xcode版本低于6.3 .

    使用 dictionaryForKey: 而不是 objectForKey: . Dictionary 不是Swift中的类类型,它是值类型 .

    let userDefaults = NSUserDefaults.standardUserDefaults()
    
    userDefaults.setValue(["key":"value"], forKey: "answersSaved") // fill data
    
    if let answersSaved = userDefaults.dictionaryForKey("answersSaved") as? [String : String] {
    
        // [NSObject : AnyObject] can be converted to [String : String]
    
        if let value = answersSaved["key"] {
    
            println(value) // value
        }
    
    }
    

相关问题