iOS 中常见crash总结

1、unrecognized selector sent to instance(找不到方法)
2、KVC造成的crash
给不存在的key(包括key为nil)设置value

 [obj setValue:@"value" forKey:@"UndefinedKey"]
 [obj valueForKey:@"UndefinedKey"]

解决方案
方案1、如果属性存在,利用iOS的反射机制来规避,NSStringFromSelector(@selector())将SEL反射为字符串作为key。这样在@selector()中传入方法名的过程中,编译器会有合法性检查,如果方法不存在或未实现会报黄色警告。
方案2、重写类的setValue:forUndefinedKey:和valueForUndefinedKey:

-(void)setValue:(id)value forUndefinedKey:(NSString *)key{

}
-(id)valueForUndefinedKey:(NSString *)key{
    return nil;
}

3、EXC_BAD_ACCESS
出现悬挂指针,对象没有被初始化,或者访问的对象被释放
4、KVO引起的崩溃
添加了观察者,没有在正确的时机移除
5、集合类相关崩溃
越界、添加nil、多线程非原子性操作、遍历的同时移除元素
6、多线程中的崩溃
7、Socket长连接,进入后台没有关闭
8、Watch Dog超时造成的crash
9、后台返回NSNull导致的崩溃,多见于Java做后台服务器开发语言
10、

[UIImage stringByDeletingPathExtension]

对一个image对象再次进行初始化操作

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 好好说话到底有多难? “好好说话”是社会公认的常识,可是能真正做到的人却不多。就像“知道了那么多道理,却依然过不好...
    8230简单阅读 371评论 0 0
  • 今日体验,今天下了班给店长出去找客户找要维修费,车辆维修完长时间都没有结帐,一直在追帐都没有找到人,今天可算给结帐...
    王全峰阅读 125评论 0 0
  • 一年前,曾读过蔡崇达的《皮囊》,着实的提不起兴趣,就搁置了许久,也忘了还有这本书。 恰巧,这个暑假时间很多。习惯于...
    我的笔名是西瓜阅读 744评论 0 2
  • 偶成 事不找人人找事,人不找事事找人。 一时人事两不扰,便得清净自在心。 2011.3.23 拟古 游子无所依,策...
    以一圣真阅读 498评论 0 0
  • 什么是婚姻观? 我先提出两个最基本的问题: 1.怎样看待婚姻? 2.在婚姻里该如何生活? 1.怎样看待婚姻? 简单...
    Ace_Lee阅读 823评论 0 0

友情链接更多精彩内容