Ich habe einen plist von Pegeleinstellungenaktualisieren NSUserDefaults Nested Wörterbuch
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
etc
ich sie in der AppDelegate Registrierung
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)
}
I‘ Ich möchte diese
aktualisierenfunc 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")
}
Fehler:
mutating method sent to immutable object
ich in Variablen übergeben werden die Dict Ebene und den Schlüssel usw. zu wählen, sobald es
Arbeits istaktualisieren
let level1Dict:AnyObject = defaults.objectForKey("Level1")!.mutableCopy()
level1Dict.setValue(1, forKey: "moves")
defaults.setObject(level1Dict, forKey: "Level1")
Danke, hätte schwören Ich hatte versucht, aber es funktioniert jetzt :) defaults.setObject (level1Dict, forKey: „Ebene 1“) Ich habe die Frage mit, dass auch aktualisiert –