我想了解如何从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