可能重复:
Is there anyway to set values in the settings.bundle from within the APP
我正在开发一款iPhone应用程序,它会在某个时刻提示用户提醒他们设置已关闭。从那里他们可以选择启用它并继续。我能够获取设置然后在我的代码中使用,问题是以编程方式更改它们。这就是我所拥有的
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if(buttonIndex == 1){
// Get the application defaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:@"YES" forKey:@"enabledAutoCheck"];
// Set the new settings and save
[defaults registerDefaults:appDefaults];
[defaults synchronize];
}
}
我做了一个疯狂的猜测(因为我3天前才开始学习Objective-C和iPhone开发!)它与设置默认设置的事实有关,这意味着它们仅在没有时使用之前的设置已经完成。
这只是遗漏了一些东西,还是有其他方式在最初设置后更改设置?
由于
答案 0 :(得分:4)
NSUserDefaults
有点误导性名称 - 它们是实际设置,而不是默认设置。
您不需要registerDefaults
- 而是可以调用[defaults setObject:@"YES" forKey:@"enabledAutoCheck"];
(存储设置),然后调用[defaults synchronize];
(保存设置)。这样你就可以避免删除你不想删除的设置。
你的其余代码很好。但是,请确保实际将它们加载到您需要的位置,并确保在更改UI设置时更改受影响的UI部件。他们不会更新自己,你知道: - )