NSUserDefaults,仅在首次加载时执行某些操作

Cry*_*tal 2 iphone nsuserdefaults

我试图在第一次启动应用程序时显示警报.如果他们稍后进入设置页面并希望再次看到它,我也想显示此警报.我想我可以在中设置一个布尔值NSUserDefaults.我不太清楚如何做到这一点(假设这种方法是正确的).我想applicationDidFinishLaunching:options,我可以获得key的值@"FirstTimeLaunched",然后applicationWillTerminate,我可以设置该键的对象NO.如果是这样的话,我怎么拿到BOOLYES首次?

另外,我是否需要将其设置为NOdidEnterBackground模式呢?谢谢.

pab*_*sso 5

只需考虑它倒退,而不是期望a YES,在应用程序实际启动时设置变量,并在用户在设置中这样说时将其删除.

发布时:

if (![[NSUserDefaults standardUserDefaults] boolForKey:@"hasBeenLaunched"]) {
    // show your only-one-time view
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasBeenLaunched"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}
Run Code Online (Sandbox Code Playgroud)

当用户想再次看到它时,只需删除密钥:

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"hasBeenLaunched"];
Run Code Online (Sandbox Code Playgroud)

访问不存在的密钥时,NSUserDefaults将返回nil.