2015-02-22 3 views
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) 

, что случилось с этим?

+0

Какую ошибку это бросить? – donnywals

+0

«Слишком динамический динамический сбой» – JustABeginner

ответ

1

Проблема в том, что ключ словаря должен быть строкой. Поэтому вместо объявления [NSObject: AnyObject] вы должны объявить его как [String: AnyObject]. Также вы пытаетесь загрузить его из dic, но вам нужно загрузить его из retritedDict.

обновление: 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) 
    } 
} 
0

Ваш код хорошо. Ваша единственная проблема в том, что вы передаете неправильный объект вашему NSUserDefaults. Вы должны передать dic вместо array.

Так что изменить:

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

в том, что:

NSUserDefaults.standardUserDefaults().setObject(dic, forKey: "diction") 
Смежные вопросы