怎样判断ios app 第一次启动以及每次更新后的第一次启动

流行的解决方案是在大多数地方是用[NSUserDefaults standardUserDefaults]的一个关键,如果它不存在,这意味着这是应用程序第一次启动,否则,它不是第一次启动

在appdelegate.m中找到 “application:didFinishLaunchingWithOptions:”方法, 添加以下代码:

1 if (![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) {
2         [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"];
3         NSLog(@"第一次启动");
4     }else{
5         NSLog(@"非第一次启动");
6     }

这样使用对于第一次安装是非常有效的,但是如果程序安装升级版本,这个firstLaunch都已经存在了,不会再运行了。

如果需要每次应用更新后都判断出第一次运行 请参考以下代码

#define LAST_RUN_VERSION_KEY        @"last_run_version_of_application"

- (BOOL) isFirstLoad{
    NSString *currentVersion = [[[NSBundle mainBundle] infoDictionary]
                                objectForKey:@"CFBundleShortVersionString"];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *lastRunVersion = [defaults objectForKey:LAST_RUN_VERSION_KEY];
    if (!lastRunVersion) {
        [defaults setObject:currentVersion forKey:LAST_RUN_VERSION_KEY];
        return YES;
        // App is being run for first time
    }else if (![lastRunVersion isEqualToString:currentVersion]) {
        [defaults setObject:currentVersion forKey:LAST_RUN_VERSION_KEY];
        return YES;
        // App has been updated since last run
    }
    return NO;
}

  

  

时间: 2024-12-28 11:34:07

怎样判断ios app 第一次启动以及每次更新后的第一次启动的相关文章

怎样判断iOS App是通过哪种途径启动的?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions说明:当应用程序启动时执行,应用程序启动入口.只在应用程序启动时执行一次.application参数用来获取应用程序的状态.变量等,值得注意的是字典参数:(NSDictionary *)launchOptions,该参数存储程序启动的原因.1.若用户直接启动,lauchOptions

win10自动更新后SQLServer无法启动的问题排查

今天中午windows提示更新系统补丁并重启后发现,本地的SQL Server服务器没有正常启动,手工启动sqlserver也失败了,报错:找不到ERRORLOG文件及相应目录. 很是奇怪.强制创建该目录后,再次启动sqlserver,又报错找不到master.mdf文件.经eventvwr和process moniter找到注册表信息貌似被修改到了默认的C盘缺省目录. 手工修改注册表中sqlserver的启动参数后,问题解决. 强制创建该目录后,再次启动sqlserver,又报错找不到mast

判断ios app 第一次启动 别人的 嘿嘿

流行的解决方案是在大多数地方是用[NSUserDefaults standardUserDefaults的一个关键,如果它不存在,这意味着这是应用程序启动,否则,它不是第一次 在appdelegate.m中找到 “application:didFinishLaunchingWithOptions:” 方法, 添加以下代码: if (![[NSUserDefaults standardUserDefaults] boolForKey:@"everLaunched"]) {    [[NS

linux修改启动顺序,登录后提示,启动级别

修改启动顺序 # vim  /etc/inittab ....... d:3:initdefault: #找到这一行,d:3:initdefault:最小化启动 d:5:initdefault:图形界面启动 #去掉开机等待的5s vi /boot/grub/menu.lst timeout=5    #设置开机选项描述,默认为5秒 设置登录成功之后的提示信息 /etc/motd文件设置成功登录后的提示信息,默认情况下,此文件里是没有内容的. 成功登录后立刻显示/etc/motd文件里的所有内容,

谈一谈让人深恶痛绝的iOS app上架

相信大家一定非常「深恶痛疾」AppStore的iOS app上架规则.每次产品上架,一定要折腾很久,让人蛋疼.所以特此发起本期沙龙,为大家带来一些经验. 闫国荣:以下是现在能记忆起,遇到的问题.大家对此有不清楚的地方可以提出来,我详细介绍下. 内容含敏感话题或对苹果不友好的信息(如苹果婊) 使用了友盟的统计SDK,获取了IDFA但是上传填写无广告 采用友盟IDFA的sdk,并用友盟的默认淘宝页面广告,被告知和产品内容不符(最近) App在itunes中和安装后显示不一致(最近) App内有检测更

苹果下架4万App就只是因为“热更新”

前去除软件热更新功能,不然有可能下架后,昨日(6 月 22 日),有媒体报道,一周内苹果 App Store 下架了近 4万款中国 App .一种流行观点认为,苹果不是说着玩,而是真对热更新动刀子了. 热更新是一种各大手游等众多 App 常用的更新方式,即用户通过 App Store下载App之后,打开 App 时遇到的即时更新. 2017年6月,AppStore 审核团队确实针对 AppStore 中"热更新"的 App 开发者发送邮件,要求移除所有相关的代码.框架或 SDK,并重新

解决linux部署项目后,第一次访问初始化数据源的时候很慢的问题

先说一下场景 测试环境是linux - centos6.5,项目是分布式的,分别搭建到linux上 数据货使用的是阿里巴巴数据源 每次重启后的第一次访问会比较慢,查看日志发现 卡在这个地方 ...{dataSource-1} inited... 网上找了一些问题,发现有个别人有这问题但是都没解决,后来都换了数据源,我觉得这个问题不是数据源的问题 猜测是linux或者mysql问题 首先修改linux配置,由于每次使用ssh登录会很慢,就修改了配置,登录速度提升,但是这不是根本原因 修改mysql

iOS App从点击到启动

程序启动之前 从exec()开始 main()函数是整个程序的入口,在程序启动之前,系统会调用exec()函数.在Unix中exec和system的不同在于,system是用shell来调用程序,相当于fork+exec+waitpid,fork 函数创建子进程后通常都会调用 exec 函数来执行一个新程序:而exec是直接让你的程序代替原来的程序运行. system 是在单独的进程中执行命令,完了还会回到你的程序中.而exec函数是直接在你的进程中执行新的程序,新的程序会把你的程序覆盖,除非调

iOS App初次启动时的用户引导页制作实例分享

iOS App初次启动时的用户引导页制作实例分享 作者:老初 字体:[增加 减小] 类型:转载 时间:2016-03-09我要评论 这篇文章主要介绍了iOS App初次启动时的用户引导页制作实例分享,其中判断程序是否是第一次或版本更新以后第一次启动是一个关键点,需要的朋友可以参考下 应用程序APP一般都有引导页,引导页可以作为操作指南指导用户熟悉使用:也可以展现给用户,让用户了解APP的功能作用.引导页制作简单,一般只需要一组图片,再把图片组展现出来就可以了.展示图片组常用UIScrollVie