我聽說我需要使用registerDefaults:加載NSUserDefaults,如果用戶從未更改過應用程序設置。如何使用registerDefaults:正確地加載我的默認設置?
在我的AppDelegate我使用下面的代碼:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// Load default defaults
[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Defaults" ofType:@"plist"]]];
[[NSUserDefaults standardUserDefaults] synchronize];
// Add the view controller's view to the window and display.
[window addSubview:viewController.view];
[window makeKeyAndVisible];
return YES;
}
我抄我的設置Root.plist捆綁到我的項目的ressources文件夾,並在其更名爲Defaults.plist
現在我的視圖控制器的viewDidLoad方法我使用下面的代碼來加載設置:
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
if ((([[defaults objectForKey:kToggleSwitch] isEqualToString:@"Enabled"]) ? YES : NO)) {
//Do Stuff
//BTW i'm using strings for the True/False the values of the ON/OFF positions of the UISwitch
}
即使這樣做,我的設置包的Root.plist中存儲的默認設置也不會被加載。他們加載的唯一方法是,如果用戶真正進入iPhone設置,並只是查看我的應用程序的設置頁面。
很明顯,我在這裏做錯了什麼人可以幫我一把。順便說一下我使用的iOS 4.1
什麼是你Defaults.plist文件? – jasongregori 2012-02-23 02:59:22
它應該是一個kToggleSwitch設置爲默認值的字典。 – jasongregori 2012-02-23 03:00:36