iOS开发日常bug汇总

项目中遇到的问题,记录一下

1.compiling IB documents for earlier than ios 7 is no longer supported

在编译IB文件时有低于iOS7的版本文件

解决办法:

iOS开发日常bug汇总_第1张图片
IB-Show the file inspector.png

2.Invalid update: invalid number of items in section 0. The number of items contained in an existing section after the update (1) must be equal to the number of items contained in that section before the update (1), plus or minus the number of items inserted or deleted from that section (0 inserted, 1 deleted) and plus or minus the number of items moved into or out of that section (0 moved in, 0 moved out

背景: 在删除collectionview的某一个item的时候报了这个错
原因: 先调用 collectionview的deleteItemsAtIndexPaths:方法然后 处理数据源,导致
解决办法:将上述代码调换一下顺序

是否开通定位权限的警示框一闪而过,无法点击确定或者拒绝

原因: CLlocationManager 被释放了,在没有设置为属性或者成员变量的时候,在其所在的方法出栈以后就被回收了,所以才导致,警示框一闪而过
解决办法: 将CLLocationManager设置为属性或者成员变量,延长他的生命周期

3.程序crush到main函数,控制台输出一大堆信息不知道怎么用,打开全局断点再跑一次么,NO,还有一个方法,上图:

iOS开发日常bug汇总_第2张图片
crush信息.png

上图,第5段是程序的crush详情,前面的乱码是因为程序的名字我给的是中文,如果是英文的话会直接显示app的名称,其余 UIKit,CoreFoundation是系统方法输出的堆栈信息,对我们来说没啥用,因为问题并不是出现在系统里面,我们需要关心的是我们app输出的堆栈信息,那么问题来了,现在已经找到了app的crush信息,怎样运用这些个信息呢???

答案就是 lldb 指令---image lookup -address 抑或**im loo -a **
怎么用呢,看图 :

im loo -a.png

address 后面跟上堆栈信息中的内存地址,回车后可以初试;两个信息,其中 summary 就是堆栈信息定位的 类名与方法名, crush在viewController的viewDidLoad 方法里面,第22行代码

你可能感兴趣的:(iOS开发日常bug汇总)