У меня есть PLIST настройки уровняUpdate NSUserDefaults Вложенные словарь
defaultPrefs.plist
Root Dictionary
Level1 Dictionary
time Number 0
pushes Number 0
moves Number 0
unlocked Boolean YES
Level2 Dictionary
time Number 0
pushes Number 0
moves Number 0
unlocked Boolean NO
и т.д.
Я их регистрации в AppDelegate
let plist: String? = "defaultPrefs"
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let path = NSBundle.mainBundle().pathForResource(plist, ofType: "plist")!
let dict = NSDictionary(contentsOfFile: path) as! [String: AnyObject]
NSUserDefaults.standardUserDefaults().registerDefaults(dict)
}
Я d хотели бы их обновить
func writeToPlist() {
let defaults = NSUserDefaults.standardUserDefaults()
let level1Dict:AnyObject = defaults.objectForKey("Level1")!
//let level1Dict:AnyObject = defaults.dictionaryForKey("Level1")!
level1Dict.setValue(1, forKey: "moves")
//level1Dict.setInteger(1, forKey: "moves")
}
Ошибка:
mutating method sent to immutable object
Я пройду в переменных, чтобы выбрать уровень Dict и ключ и т.д., когда он работает
Update
let level1Dict:AnyObject = defaults.objectForKey("Level1")!.mutableCopy()
level1Dict.setValue(1, forKey: "moves")
defaults.setObject(level1Dict, forKey: "Level1")
Спасибо, мог бы поклясться, что я попробовал это, но теперь он работает :) defaults.setObject (level1Dict, forKey: «Level1») Я обновил этот вопрос с этим тоже –