applicationDidBecomeActive

applicationDidBecomeActive

我有一个Root.plist文件,用于我的应用程序设置。它具有标识为reset_achievements_preference的拨动开关。在applicationDidBecomeActive方法中,我有以下代码:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    NSLog(@"reset achievements: %i", [[NSUserDefaults standardUserDefaults] boolForKey:@"reset_achievements_preference"]);

    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"reset_achievements_preference"]) {
        [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"reset_achievements_preference"];
        [[NSUserDefaults standardUserDefaults] synchronize];

        //Code to react to this change
    }
}


有时它会命中NSLog并注意到对象发生了变化,但有时却没有。我想知道我是否处理错误?

最佳答案

尝试添加:

[[NSUserDefaults standardUserDefaults] synchronize]


要先applicationDidBecomeActive:刷新其他用户默认状态。您的synchronize方法由应用程序定期调用,但是您可以手动刷新它。

关于ios - 并非总是在applicationDidBecomeActive中检测到Settings.app中切换的选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21526035/

10-13 09:03