开发中一般错误分析

 

两种崩溃调试方法

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值

你可能感兴趣的:(开发中一般错误分析)