Iphone 您如何检测用户是否是第一次打开应用程序
是否可以使用Iphone 您如何检测用户是否是第一次打开应用程序,iphone,ios,Iphone,Ios,是否可以使用Objective-C检测用户是否是第一次打开iOS应用程序 我想在用户第一次打开应用程序时显示欢迎消息,但之后不向他们显示 我要找的东西是: BOOL firstTime = [AppDelegate isFirstTimeOpeningApplication] 您可以在NSUserDefaults中保存一个“我以前运行过”标志,以查找应用程序首选项中的某个值,或某个文件是否存在。如果找不到,则表示您的应用程序是第一次运行,因此请将预期值写入首选项或创建文件,以便下次运行应用程序
Objective-C
检测用户是否是第一次打开iOS
应用程序
我想在用户第一次打开应用程序时显示欢迎消息,但之后不向他们显示
我要找的东西是:
BOOL firstTime = [AppDelegate isFirstTimeOpeningApplication]
您可以在
NSUserDefaults
中保存一个“我以前运行过”标志,以查找应用程序首选项中的某个值,或某个文件是否存在。如果找不到,则表示您的应用程序是第一次运行,因此请将预期值写入首选项或创建文件,以便下次运行应用程序时,您会知道这不是第一次
如果您存储第一次运行的时间和日期,而不仅仅是一个标志,那么您可以确定应用程序使用以来的时间和日期。如果用户很长时间没有使用你的应用程序,你可能希望你的应用程序看起来像是第一次运行
请注意,此技术仅在用户未删除您的应用程序时有效。删除应用程序时,其所有数据都将被删除。如果您想知道您的应用程序以前是否在该设备上运行过,即使后来被删除了,您也需要记录信息,以便在其他地方(例如在您自己的服务器上)识别该设备。使用
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];
}
}
//In applicationDidFinishLaunching:withOptions:
BOOL hasLaunchedBefore = [[NSUserDefaults standardUserDefaults] boolForKey:@"AppHasLaunchedBefore"];
if(!hasLaunchedBefore) {
//First launch
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"AppHasLaunchedBefore"];
}
else {
//Not first launch
}
希望有帮助 使用NSUserDefaults存储一个标志,该标志将指示用户之前是否启动过应用程序。如果标志的值为。。假设“IsFirstTimeLaunched”为false,则表示用户以前没有启动过应用程序 到目前为止你试过什么?你提到你在堆栈溢出上尝试了“其他方法”,但没有提到你尝试了什么方法。如果你关闭手机,这些方法就不起作用——这没有任何意义。在应用程序启动之间保存任何数据的唯一方法是将其写入持久存储;如果将其写入永久性存储,则无论您是否在设备上循环电源,它都会存在。放入钥匙链的项目不会随应用程序一起删除,因此这可能是一种在卸载之间存储少量信息的有用方法。@RobNapier我想可能是这样的,但我没有足够的把握提出建议,而且时间太短,无法查找。感谢您添加这一点——使用钥匙链要比为此目的设置服务器容易得多。