1

このコードは、アプリを実行するとエラーをスローします

var dic :[NSObject: AnyObject] = ["name":"steph" , "status": "unemployed"]

NSUserDefaults.standardUserDefaults().setObject(array, forKey: "diction")

var retrievedDict = NSUserDefaults.standardUserDefaults().objectForKey("diction")! as NSDictionary

let g = dic["name"]

println(g)

これの何が問題なのですか?

4

2 に答える 2

2

問題は、Dictionary キーが文字列でなければならないことです。[NSObject: AnyObject] を宣言する代わりに、[String: AnyObject] として宣言する必要があります。また、dic からロードしようとしていますが、retrivedDict からロードする必要があります。

更新: Xcode 7.2 • Swift 2.1.1

let dic:[String: AnyObject] = ["name":"steph" , "status": "unemployed"]

NSUserDefaults().setObject(dic, forKey: "diction")

if let retrievedDict = NSUserDefaults().dictionaryForKey("diction") {
    if let g = retrievedDict["name"] as? String {
        print(g)
    }
}
于 2015-02-22T19:42:07.697 に答える