在iOS开发中,最严重的bug估计就是应用奔溃,如果应用奔溃了,除了做好挨骂的准备,还需要冷静的下来去处理这个事情,接下来我们来看看需要做什么事情。
获取crash信息
我们首先第一个事情就是要知道应用的奔溃信息是什么,这里有几种方式去获取奔溃信息。
- 使用Bugly,友盟等第三方SDK登入后台查看奔溃信息
- 代码自动上传奔溃信息到服务器,然后通过恢复dSYM文件来查看奔溃信息
- 通过使用当前发生应用奔溃的设备导出相关的奔溃信息
- 如果是线上的应用,还可以通过itunesConnect来查看(非即时)
所有的东西你都要坚持到最后才知道值不值得
在iOS开发中,最严重的bug估计就是应用奔溃,如果应用奔溃了,除了做好挨骂的准备,还需要冷静的下来去处理这个事情,接下来我们来看看需要做什么事情。
我们首先第一个事情就是要知道应用的奔溃信息是什么,这里有几种方式去获取奔溃信息。
相信在iOS开发中大家都用过倒计时的功能,而NSTimer也是大家用得最多用来实现该功能的类,但是可能有人不太清楚NSTimer存在计时不准并且可能会导致引用循环资源无法释放的情况,接下来我会介绍一下使用GCD以及CADisplaylink来实现倒计时以及他们三者的利弊。
在开始介绍下面三种方法之前,我想我们有必要先来介绍一下RunLoop,因为CADisplaylink和NSTimer都是需要通过运行在RunLoop里面才保证了每次到特定的时间点就会执行对应的事件
相信大家都知道在OC中有两种比较是否相等的方法,第一种是直接用==符号比较,第二种是使用isEqual来比较,它们的区别如下:
== 如果是用于基本数据类型的比较,那么直接比较数值,isEqual只能用于OC对象比较== 如果是用于OC对象比较,那么是判断他们是不是同一个对象,也就是指针所指向的地址是否一致。而isEqual则是比较两个对象是否相同。网上已经有很多关于HTTP与HTTPS的文章,为什么我还要写这篇文章呢,源于昨天有个iOS开发同学昨天在群里面提了一个问题,如果一个人下载了一个APP,该APP与服务器是HTTPS连接,他不会信任任何来源于不明身份的证书,然后连上了我的WIFI,我有没有办法去破解里面的通信内容?
接下来我们就带着这个疑问去寻找答案,并且给出我的答案。
HTTP(HyperText Transfer Protocol)超文本传输协议,HTTP是七层网络模型中作用在应用层的协议。
在第一篇Jenkins的搭建中我们已经把本地jenkins环境都搭建好了,接下来我们通过jenkins构建一个ipa并且上传到蒲公英。
1.首先选择左侧的新建任务,然后下面是构建该工程的基本信息


对于一个APP来说,我相信我们开发最担心的就是出bug,只要是线上APP出bug,心里就慌得很,这是一件很严重的事情,还有可能让用户一气之下把你的APP删掉,从此再也不会出现在他的手机里面。
但是如果我们严格把控APP的质量,我们做到每天都构建一个版本并且测试,我们将这个APP上传到一个特定的测试系统,当有代码更新的时候或者每天设置一个时间去不断的跑测试,这样我们在开发阶段就发现很多问题。
上面我们说的就是CI(Continuous Integration)持续集成+TDD(Test Driven Development)测试驱动开发。
在swift中并没有内设的栈和队列,接下来我们通过数组来实现栈和队列
栈的实现代码如下:
1 | protocol Stack { |