我想了解如何從NSDefaults保存/存儲我的值,以便在退出應用程序時將它們存儲在Settings.bundle中。這是我在做什麼...從設置包中存儲NSUserDefaults的值
NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys:@"M1", @"IDMissiles",
@"G2", @"IDGuns",
@"B3", @"IDBombs",
@"KM", @"IDDistance", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:settings];
如果我這樣做,值從正確NSUserDefaults的打印出來......
NSLog(@"IDMissiles: %@", [userDefaults stringForKey:@"IDMissiles"]);
NSLog(@"IDGuns : %@", [userDefaults stringForKey:@"IDGuns"]);
NSLog(@"IDBombs : %@", [userDefaults stringForKey:@"IDBombs"]);
NSLog(@"IDDistance: %@", [userDefaults stringForKey:@"IDDistance"]);
但是......我每次運行該應用程序NSUserDefaults中的值從(null)開始,我想[[NSUserDefaults standardUserDefaults] synchronize];
會在下次運行應用程序時存儲這些值,但沒有這樣的運氣。與settings.bundle工作時
NSLog(@"IDMissiles:%@[[[NSUserDefaultsstandardUserDefaults]objectForKey:@"settings"]objectForKey:@"IDMissiles"]);
指這樣:[registerDefaults](https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/nsuserdefaults_Class/Reference/Reference.html#//apple_ref/occ/instm/NSUserDefaults/registerDefaults :) – Hector
註冊域的內容不寫入磁盤;每次啓動應用程序時都需要調用此方法 – Hector