如何检测用户是否第一次打开应用程序

是否有可能检测出用户是否第一次使用Objective-C打开iOS应用程序?

我想在用户首次打开应用程序时显示欢迎消息,但是之后不会显示给用户。

我正在寻找像这样的东西:

 BOOL firstTime = [AppDelegate isFirstTimeOpeningApplication] 

使用NSUserDefaults

 //In applicationDidFinishLaunching:withOptions: BOOL hasLaunchedBefore = [[NSUserDefaults standardUserDefaults] boolForKey:@"AppHasLaunchedBefore"]; if(!hasLaunchedBefore) { //First launch [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"AppHasLaunchedBefore"]; } else { //Not first launch } 

希望有所帮助!

在应用程序的首选项中查找一些值,或者存在某个文件。 如果您没有find它,那么您的应用程序将首次运行,因此请将预期值写入首选项或创build文件,以便下次运行应用程序时,您将知道这不是第一次。

如果您存储了第一次运行的时间和date,而不是一个标志,则可以确定从使用该应用程序到现在的时间。 如果用户长时间没有使用您的应用程序,您可能希望自己的应用程序像第一次运行一样。

请注意,这种技术只适用于用户还没有删除您的应用程序。 当一个应用程序被删除,所有的数据被删除。 如果您想知道您的应用是否曾经在该设备上运行过,即使之后被删除,您也需要logging信息以在别处标识设备,例如在您自己的服务器上。

您可以在NSUserDefaults保存“我以前运行过”标志。

 - (void)applicationDidFinishLaunching:(UIApplication *)application { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *firsttime = [defaults stringForKey:@"firsttime"]; if (firsttime == nil) { TheOtherViewController *Other = [[TheOtherViewController alloc] initWithNibName:nil bundle:nil]; Other.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [window addSubview: Other.view]; [defaults setObject:@"lasttime" forKey:@"firsttime"]; } else { [window addSubview:viewController.view]; [window makeKeyAndVisible]; } } 

使用NSUserDefaults来存储一个标志,该标志将指示用户是否已经启动了应用程序。 如果标志的值可以说“IsFirstTimeLaunched”为false,那么表示用户还没有启动应用程序。