两种崩溃调试方法
1、在控制台找reason
2、设置全局断点,定位到导致崩溃的代码
数组越界
reason: '-[__NSCFArray objectAtIndex:]: index (4) beyond bounds (4)'
如果控件没有出现
1、可以先调一下他的背景颜色 查看空间是否存在或者被覆盖
2、打断点 看是不是执行了这个方法 在打印的地方输入 p 或者 po +对象名 查看对象的值是否存在
3、查看是不是添加到父视图上
4、查看是否有地方把它隐藏 或者透明度为0.0
5、查看视图是否有frame
6、查看这个对象有没有初始化 可以直接打印对象名
(null)证明对象没有被初始化
7、查找是否有地方把对象置空 nil
8、查找对象是否被重新初始化
如果崩溃并且有提示错误(reason:)
->打一个全局断点
->(点击箭头 或者commod+7)
->点击左下角小加号 点击第二个
UIControl以及他的子类不能响应
1、查看它是否添加响应事件
2、查看响应事件的方式是否正确
按钮一般用:
UIControlEventTouchDown 按下就响应
UIControlEventTouchUpInside 按下抬起响应
作为响应时间的方式。
3、查看是否添加到imageView上
->userInteractionEnabled 是否启动用户交互 (=YES)
4、查看控件是否查出父视图的界限
(比如把按钮添加到视图view上,超过父视图view的范围的部分不响应触发事件,只有在父视图上面才会响应)
按下按钮崩掉
reason: '-[ViewController actio]: unrecognized selector sent to instance 0x7fed51d15b00'
1、对象不能使用这个方法
①没有实现这个方法 ② 方法名错误
2、对象提前被释放
reason: '-[UIControl text]: unrecognized selector sent to instance 0x7fcca8f10570'
UIControl 不能使用text这个方法
对象能不能调用某个系统方法
查看传过来的对象跟调用的对象不是同一个类
输入框代理方法不响应
1、查看是否挂上了代理
2、代理方法是否拷贝过来的 是否写错
怎么区分两个输入框同时调用同一个方法-----tag值