iPhone - 以编程方式更改应用程序设置

时间:2011-12-03 20:50:46

标签: iphone ios cocoa-touch cocoa

  

可能重复:
  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开发!)它与设置默认设置的事实有关,这意味着它们仅在没有时使用之前的设置已经完成。

这只是遗漏了一些东西,还是有其他方式在最初设置后更改设置?

由于

1 个答案:

答案 0 :(得分:4)

NSUserDefaults有点误导性名称 - 它们是实际设置,而不是默认设置。

您不需要registerDefaults - 而是可以调用[defaults setObject:@"YES" forKey:@"enabledAutoCheck"];(存储设置),然后调用[defaults synchronize];(保存设置)。这样你就可以避免删除你不想删除的设置。

你的其余代码很好。但是,请确保实际将它们加载到您需要的位置,并确保在更改UI设置时更改受影响的UI部件。他们不会更新自己,你知道: - )