关闭

iOS小技巧13- 判断iOS App程序安装后第一次启动,更新后第一次启动

2681人阅读 评论(0) 收藏 举报
分类:

iOS小技巧13- 判断iOS App程序安装后第一次启动,更新后第一次启动



1、判断程序第一次启动

 /*
     NSUserDefaults 全局的--保存到Preferences  存数据比较少,可以用来传值
     适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名、密码之类。
     NSUserDefaults支持的数据格式有:NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型。
     
     */
    NSUserDefaults *myUD=[NSUserDefaults standardUserDefaults];
 
    if(![myUD boolForKey:@"firstStart"])
    {
        [myUD setBool:YES forKey:@"firstStart"];
        [myUD synchronize];//同步
        NSLog(@"第一次启动");
        
    }else{
        NSLog(@"不是第一次启动");
    }
    

2、判断程序是否更新后第一次启动

- (BOOL) isAppFirstRun{
    NSString *currentVersion = [[[NSBundle mainBundle] infoDictionary]
                                objectForKey:@"CFBundleShortVersionString"];
    
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    
    NSString *lastRunKey = [defaults objectForKey:@"last_run_version_key"];
    
    if (!lastRunKey) {
        [defaults setObject:currentVersion forKey:@"last_run_version_key"];
        return YES;
        // App is being run for first time
        //上次运行版本为空,说明程序第一次运行
        
    }
    else if (![lastRunKey isEqualToString:currentVersion]) {
        [defaults setObject:currentVersion forKey:LAST_RUN_VERSION_KEY];
        return YES;
        // App has been updated since last run
        //有版本号,但是和当前版本号不同,说明程序已经更新了版本
    }
    return NO;
    
    
    
}

[[NSBundle mainBundle] infoDictionary]的内容

/*
 
 [[[NSBundle mainBundle] infoDictionary]={
 BuildMachineOSBuild = 14F27;
 CFBundleDevelopmentRegion = en;
 CFBundleExecutable = firstRunApp;
 CFBundleIdentifier = "LotusNing.firstRunApp";
 CFBundleInfoDictionaryVersion = "6.0";
 CFBundleInfoPlistURL = "Info.plist -- file:///Users/l/Library/Developer/CoreSimulator/Devices/4BE9A476-F866-47D0-AA53-F4C3D57452F2/data/Containers/Bundle/Application/BEC096F3-10C3-4BFB-BC75-03C35289BB9F/firstRunApp.app/";
 CFBundleName = firstRunApp;
 CFBundleNumericVersion = 16809984;
 CFBundlePackageType = APPL;
 CFBundleShortVersionString = "1.0";
 CFBundleSignature = "????";
 CFBundleSupportedPlatforms =     (
 iPhoneSimulator
 );
 CFBundleVersion = 1;
 DTCompiler = "com.apple.compilers.llvm.clang.1_0";
 DTPlatformBuild = "";
 DTPlatformName = iphonesimulator;
 DTPlatformVersion = "9.0";
 DTSDKBuild = 13A340;
 DTSDKName = "iphonesimulator9.0";
 DTXcode = 0701;
 DTXcodeBuild = 7A1001;
 LSRequiresIPhoneOS = 1;
 MinimumOSVersion = "9.0";
 UIDeviceFamily =     (
 1,
 2
 );
 UILaunchStoryboardName = LaunchScreen;
 UIMainStoryboardFile = Main;
 UIRequiredDeviceCapabilities =     (
 armv7
 );
 UISupportedInterfaceOrientations =     (
 UIInterfaceOrientationPortrait,
 UIInterfaceOrientationLandscapeLeft,
 UIInterfaceOrientationLandscapeRight
 );
 }
 
 */










著作权声明:本文由http://my.csdn.net/Nathan1987_原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢
1
0
查看评论

iOS经典讲解之判断App是否第一次启动

作者:Loving_iOS 转载请标明出处: 方法一、在didFinishLaunchingWithOptions方法中加入如下代码: if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"])...
  • Loving_iOS
  • Loving_iOS
  • 2015-12-30 16:58
  • 6244

iOS 判断App是否第一次启动

方法一、在didFinishLaunchingWithOptions方法中加入如下代码: if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]){ [[NSUserDefaults sta...
  • u012265444
  • u012265444
  • 2016-07-23 12:33
  • 724

iOS--应用首次启动的引导页

昨天,弄了一早上和半个下午的Source Tree,网速成为了阻止我前进的最大障碍,果然想起了前段时间看到一篇文章(主要讲到程序员的装备),其中有一项就是高速的网络环境,经过昨天,深深体会到这句话。 好了,扯远了,回来。昨天下午网上无意间看到了某大虾的引导页的分享,想着前段时间做的项目也又一个引导...
  • gauss_li
  • gauss_li
  • 2014-12-02 10:51
  • 921

iOS中判断是否首次下载app

//判断是否首次下载 在程序启动的时候app delegate 中先判断 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {...
  • u011146511
  • u011146511
  • 2016-12-21 10:24
  • 946

IOS开发判断是否第一次使用软件且下次app自动更新后再次打开还是第一次使用

对于用户来讲,在第一次打开软件的时候,最好有个引导页,告诉用户软件怎么使用,或者本次软件的主要的更新在哪儿,提高用户的软件体验。 下面有有两种方法 1.本地存储一个bool变量判断是不是第一次启动,若是第一次启动就打开引导页。 2.本地存储版本号,判断当前版本号是否大于本地保存的版本号,如果大于则启...
  • DYZ904535626
  • DYZ904535626
  • 2015-08-10 16:32
  • 1702

ios首次安装引导

  • 2015-12-26 21:52
  • 6.67MB
  • 下载

iOS 新手指引在App中的添加,第一次启动应用程序出现,后面都不出现

1、在appdelegate.m中找到 “application:didFinishLaunchingWithOptions:” 通过NSUserDefaults 来进行判断 if (![[NSUserDefaultsstandardUserDefaults]&#...
  • Tina__March
  • Tina__March
  • 2016-01-12 09:27
  • 1045

【IOS】在某个页面第一次启动的时候,显示引导页

- (void)viewWillAppear:(BOOL)animated{ if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstStart"]){ [[NSUserDefaul...
  • howlaa
  • howlaa
  • 2016-07-05 15:20
  • 2778

IOS中如何判断程序是否是第一次安装使用

在appdelegate.m中找到 “application:didFinishLaunchingWithOptions:”方法, 添加以下代码: [html] view plaincopy if (![[N...
  • COOL_BEAR_XX
  • COOL_BEAR_XX
  • 2015-05-20 00:51
  • 2579

IOS中如何判断程序是否是第一次安装使用

在appdelegate.m中找到 “application:didFinishLaunchingWithOptions:”方法, 添加以下代码: [html] view plaincopy if (...
  • bobo553443
  • bobo553443
  • 2017-09-28 11:49
  • 97
    个人资料
    • 访问:228595次
    • 积分:4471
    • 等级:
    • 排名:第7926名
    • 原创:228篇
    • 转载:1篇
    • 译文:0篇
    • 评论:22条
    联系方式

    所在地:北京海淀 


    从事:iOS移动端开发。 


    技术讨论群:536739494


    邮箱:utopia.pro@aliyun.com 


    博客内文章、视频有错误或不妥之处,请您留言或邮件指明,不胜感激,发现会及时修正。


    博客内有些资料可能来自报刊、杂志、书籍、如果有侵犯到版权或个人利益,请您留言或邮件指明,第一时间处理。


    最新评论