Iphone NSUserDefault,仅在第一次加载时执行某些操作

Iphone NSUserDefault,仅在第一次加载时执行某些操作,iphone,nsuserdefaults,Iphone,Nsuserdefaults,我正在尝试在应用程序第一次启动时显示警报。如果他们稍后进入设置页面并希望再次看到,我还希望显示此警报。我想我可以在NSUserDefaults中设置一个布尔值。但我不太确定如何做到这一点(假设这种方法是正确的)。我认为在applicationdFinishLaunching:options中,我可以获得键@“FirstTimeLaunched”的值,在应用程序将终止中,我可以将该键的对象设置为否。如果是这种情况,如何使BOOL第一次成为YES 另外,我是否也需要在dienterbackgroun

我正在尝试在应用程序第一次启动时显示警报。如果他们稍后进入设置页面并希望再次看到,我还希望显示此警报。我想我可以在
NSUserDefaults
中设置一个布尔值。但我不太确定如何做到这一点(假设这种方法是正确的)。我认为在
applicationdFinishLaunching:options
中,我可以获得键
@“FirstTimeLaunched”
的值,在
应用程序将终止
中,我可以将该键的对象设置为
。如果是这种情况,如何使
BOOL
第一次成为
YES


另外,我是否也需要在
dienterbackground
模式中将其设置为
NO
?谢谢。

第一次启动应用程序,所以我认为您永远不需要将
BOOL
设置为
NO
<如果删除应用程序,则会删除代码>用户默认值。我们在应用程序首次启动时进行设置应用程序
didfishlaunchingwithoptions:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FirstTimeLaunched"];
[[NSUserDefaults standardUserDefaults] synchronize];

如果您将
应用程序中的
Bool
设置为
NO
,则每次用户从托盘中杀死应用程序时,您都会在应用程序启动时显示警报。同样,这取决于您的业务需求。

我会采取相反的方法,首先检查名为ApphasLaunchedPreviousy的密钥

如果是,则绕过警报。
如果不是“是”,则显示警报并立即将其设置为下一次使用。

只需将其向后考虑,而不是期望出现“是”
,在实际启动应用程序时设置一个变量,并在用户在“设置”中这样说时将其删除

启动时:

if (![[NSUserDefaults standardUserDefaults] boolForKey:@"hasBeenLaunched"]) {
    // show your only-one-time view
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasBeenLaunched"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}
当用户想要再次看到它时,只需删除该键:

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"hasBeenLaunched"];

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

这是如何工作的?如果(myBool){//show alert;},则在ApplicationIDFinishLaunching中,它将第一次显示警报。下次启动应用程序时不会再次显示它吗,因为该值仍然为“是”?if(myBool)//不显示警报。假设您在应用程序首次启动时将bool设置为YES。否则请保持警惕,谢谢。。我想在第一次在设备上安装应用程序时显示一次特定的控制器,之后,我如何实现这一点,欢迎提供任何帮助请注意,
同步
已被弃用。