我想在应用程序安装和第一次打开时在视图控制器上显示帮助消息。
我可以使用哪种方法来做到这一点吗?
答案 0 :(得分:7)
您可以显示一次帮助消息,然后在NSUserDefaults
中存储一个布尔值,表示不应再次显示该消息:
NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];
BOOL appHasBeenLaunchedBefore = [userDefaults boolForKey:@"HasBeenLaunched"];
if (!appHasBeenLaunchedBefore)
{
[self showHelpMessage];
}
[userDefaults setBool:YES forKey:"HasBeenLaunched"];
答案 1 :(得分:2)
在用户默认值中使用密钥。例如:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
BOOL launchedBefore = [userDefaults boolForKey:@"hasRunBefore"];
if(!hasRunBefore)
{
NSLog(@"this is my first run");
[userDefaults setBool:YES forKey:@"hasRunBefore"];
}
用户默认值由iTunes备份,因此通常是用户首次启动而不是每台设备首次启动。
编辑:这与e.James在我面前给出的答案明确相同。 '其他答案已发布'栏未能出现。我将把它留给示例代码,但第一个答案不值得信任。答案 2 :(得分:2)
使用Grand Central Dispatch的dispatch_once()
并检查一些持久存储。
static dispatch_once_t pred;
dispatch_once(&pred,^{
NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];
BOOL hasLaunched = [userDefaults boolForKey:kAppHasLaunched];
if (!hasLaunched) {
[self showFirstLaunchMessage];
[userDefaults setBool:YES forKey:kAppHasLaunched];
}
});
这是确保代码每次启动时只在应用程序中运行一次的最简单方法(在这种情况下,块只会执行一次)。有关这方面的更多信息,请参见the Grand Central Dispatch Reference。在此块中,您只需检查一些持久存储(例如您的首选项),以查看您的应用之前是否已启动并显示相应的消息。