怎样判断ios app 第一次启动

我已经看到这个问题很多次了。今天抽空研究了一下 
首次运行的应用程序加入一些help 或者 宣传动画 现在变的很重要了。 
一个有用的例子是发送一个分析实例。这可能是一个很好的方法来确定有多少人下载实用应用程序。有人会说:“但是,嘿,苹果AppStore已经告诉我,应用程序的下载量了”。 
流行的解决方案是在大多数地方是用[NSUserDefaults standardUserDefaults的一个关键,如果它不存在,这意味着这是应用程序启动,否则,它不是第一次。然后,它说设置成后者在该方法的关键:“applicationWillTerminate:(UIApplication*)application”。这一解决方案非常好,直到我们得到的iOS 4.0。在iOS 4.0 +这种方法很少被称为(只适用于内存问题)在苹果的UIApplicationDelegate文档中所述。... 
你可以搜索的关键,如果它未设置运行 first-time-code,并设置它,但在app 的其余部分你将无法知道它是不是第一次运行(除非你使用一个全局变量) 
因此,我建议我的解决方案:... 
在appdelegate.m中找到 “application:didFinishLaunchingWithOptions:” 方法, 添加以下代码: 

if (![[NSUserDefaults standardUserDefaults] boolForKey:@"everLaunched"]) { 
   [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"everLaunched"]; 
   [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"]; 

else{ 
   [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"firstLaunch"]; 


总的解决办法是 2 个key: @”everLaunched”判断用户以前是否登录, 

                                             @”firstLaunch” 用来开发者在程序的其他部分判断. 

在第一次启动的时候 key @”everLaunched” 不会被赋址的, 并且设置为YES. @”firstLaunch” 被设置为 YES. 
在程序的其他部分用以下代码判断: 

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) { 
   // 这里判断是否第一次 


UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"第一次" 
                                                                         message:@"进入App" 
                                                                      delegate:self 
cancelButtonTitle:@"我知道了" 
otherButtonTitles:nil]; 
[alert show]; 
[alert release]; 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为nova6计算机在哪,华为nova6开发者选项在哪

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。打开华为nova6开发者选项的步骤是:1、首先进入手机桌面,点击设置。2、点击关于手机。3、连续点击版本号7次,输入锁屏密码,点击返回。4…

他是发明声呐的物理天才,被妻子家暴后出轨守寡的师母,爱因斯坦却公开支持.........

全世界只有3.14 % 的人关注了爆炸吧知识情不知所起一往而深1911年11月4日,巴黎新闻报的头版头条标题是《爱情故事:居里夫人与朗之万教授》。报纸一出,顷刻售罄;巴黎上下,满城“风流”。#寡妇科学家“乱伦”相差半旬已婚…

如何在 .NET Core 中获取 CPU 使用率

这篇文章我们分享一种如何在 .NETCore 中获取 CPU使用率的方法, 它所报告的这个值和 任务管理器 中报告的 CPU 使用值 差不多是一致的。在 .NET Framework 中,很多人会用 PerformanceCounter 类做这件事情,参考如下代码:public class Program…

uml 类图聚合与组合

聚合 聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享&#xf…

Android之ViewPager使用(用美女做的背景,给你疲惫的眼睛视觉冲击)

ViewPager的使用 我们先爆照,来点视觉冲击,其它的ViewPager弱爆了 照片看完了,接来下我们就来实现,just do it 第一步 你的项目需要有android-support-v4.jar的包,你懂的,有了才会支持ViewPager 第二步 看下项目的结构图片

深入探讨用位掩码代替分支(8):SSE指令集速度测试

在上一篇测试了MMX指令集,这次我们来测试SSE指令集。说的更精确一点,是测试SSE2指令集。  本篇致力于解决以下问题——1.SSE/SSE2指令集是什么?2.如何阅读Intel/AMD的手册?3.如何运用SSE指令集?如何将MMX代码升级为S…

mysql字段简索引_MySQL优化看这一篇就够了

本文概要概述为什么要优化系统的吞吐量瓶颈往往出现在数据库的访问速度上随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢数据是存放在磁盘上的,读写速度无法和内存相比如何优化设计数据库时:数据库表、字段的…

centos 7 安装openstack kilo in three node

教程请参考官方教程只是罗列了一些遇到的问题与解决方法1.keystone 无法启动可以先执行以下操作# keystone-manage pki_setup --keystone-user keystone --keystone-group keystone# chown -R keystone:keystone /var/log/keystone# chown -R keystone:keystone /etc/keystone/…

计算机老师开场白试讲视频,教师招考试讲模版之开场白

除了说课外,很多地区也会选用试讲作为面试形式,很多同学笔试过了在准备面试的时候容易忽视开场白的作用,其实,给听课者留下一个好的初始印象十分重要。大家在评阅文章时常常听到的一种手法就是开门见山,这是写文章的一…

.NET 6 Talk Party 2|.NET Core 与行业

关注我们微软 Reactor 为帮助广开发者,技术爱好者,更好的学习 .NET Core, C#, Python,数据科学,机器学习,AI,区块链, IoT 等技术,将每周三到周六,组织 3~5 场线上分享活动。欢迎跟着…

施一公:中国还缺乏真正的世界顶尖大学,研究生该听听这些建议

全世界只有3.14 % 的人关注了爆炸吧知识“中国的科技发展很快,变得很大,但还不够强;中国的人才众多,变得很大,但还不够强。中国是一个高等教育大国,但从权威的世界大学排名来看,中国缺乏真正的世…

Android之Fragment 真正的完全解析(上)

转载出处:http://blog.csdn.net/lmj623565791/article/details/37970961 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~ 本篇博客力求…

第零讲.1 tapestry项目创建与运行

2019独角兽企业重金招聘Python工程师标准>>> 1、在eclipse工程目录下创建项目: 第一次运行eclipse的时候会弹出选择工程项目存放地点,如我的存放路径D:\workspace。我们就把tapestry创建的项目放到这个目录方便统一管理。 打开系统的命令提示…

阿里云-数据盘挂载

2019独角兽企业重金招聘Python工程师标准>>> 硬盘分区及挂载操作步骤: 1. 查看未挂载的硬盘(名称为/dev/xvdb) # fdisk -l Disk /dev/xvdb doesnt contain a valid partition table 2. 创建分区 # fdisk /dev/xvdb ... 输入n Comm…

composer 查看php 版本_最常用的PHP版本:PHP 7.3取代7.2

php中文网最新课程每日17点准时技术干货分享自2014年以来,Private Packagist的联合创始人Jordi Boggiano一直在撰写半年度报告,介绍各种PHP版本的使用情况。他从packagist.io上的Composer安装中获取数据库。从2019年5月开始,PHP 7.3已在2019年…

jq中法可以发起ajax请求的方法有,jQuery实现监控页面所有ajax请求的方法

本文实例讲述了jQuery实现监控页面所有ajax请求的方法。分享给大家供大家参考,具体如下:你是不是有遇到这样的问题:页面发起两个ajax请求,希望它们都成功以后,再做一个动作?很容易想到的解决方案是&#xf…

钱少也就算了,为啥我们还越来越忙?

全世界只有3.14 % 的人关注了爆炸吧知识你是否时常感觉自己的生活总是不富裕,但工作却越来越忙?那是因为我们想得到的东西太多,但能够燃烧的生命却太少。那些对未来的焦虑、恐惧,说白了,就是想的太多。随着经历和阅历的…

Hello Blazor:(14)CSS隔离

前言上次我们说到,FindRazorSourceFile使用有一定限制.查看它的源码,发现它仅查找以b-开头属性名的HTML元素:function getScope(element: Element): string | null {return element.getAttributeNames().filter(name > name.startsWith(b-…

关于iPhone的UIView刷新(转)

大家应该都比较清楚如果想要刷新一个UIView的话,调用它的setNeedsDisplay即可。 问题是,当你调用了一个UIView的setNeedsDisplay之后,该UIView何时才得到刷新? 经过调研发现,应该是在一个runloop的最后阶段刷新。 什么…

Android之Broadcast, BroadcastReceiver(广播)

在 Android 中使用 Activity, Service, Broadcast, BroadcastReceiver 活动(Activity) - 用于表现功能 服务(Service) - 相当于后台运行的 Activity 广播(Broadcast) - 用于发送广播 广播接收器(BroadcastReceiver) - 用于接收广播 Intent - 用于连接以上各个组件,并在其间…