У меня есть [Int:Bool]
словаря и я пытаюсь сохранить его в мою NSDictionary .. Тем не менее, он выходит из строя с ошибкой Attempt to set a non-property-list object
Сохранение и загрузка пользовательского словарь - NSUserDefaults
let dictionary = [Int:Bool]()
self.dictionary[2] = true
self.dictionary[3] = false
NSUserDefaults.standardUserDefaults().setObject(dictionary, forKey: "dictionary")
Кроме того, для загрузки, первого Я пробовал это, но ошибка, зарегистрированная в нем, строго требует AnyObject ?.
NSUserDefaults.standardUserDefaults().objectForKey("dictionary")
Тогда я попробовал это и вошли:
NSUserDefaults.standardUserDefaults().objectForKey("dictionary") as? [Int:Bool]
Я также попытался dictionaryForKey
. Я получил ..
NSUserDefaults.standardUserDefaults().dictionaryForKey("dictionary")
Невозможно присвоить значение типа [String: AnyObject], чтобы ввести [Int: Bool]
Итак, какой из этих 2 является лучшим подходом к брать? (Значения будут факультативными в моем случае, я думаю)
1.
NSUserDefaults.standardUserDefaults().objectForKey("dictionary") as? [Int:Bool] ?? [Int:Bool]()
2.
NSUserDefaults.standardUserDefaults().objectForKey("dictionary") as? [Int:Bool])!
Вы синхронизированы ваши NSUserDefaults после сохранения? 'NSUserDefaults.standardUserDefaults(). Synchronize()' –
Я думаю, вы должны использовать 'dictionaryForKey (_ :)'. –
Ahh. Я полностью забыл добавить его к вопросу. Я также попробовал это. Получение ошибки .. Обновлен мой вопрос – senty