关于引起iOS App异常CRASH代码的原因汇总

6年前 (2018-02-12) fancyang IOS相关开发 0评论 已收录 6031℃

在ios开发中,最常见的错误就是虽然app成功经过编译运行,但是总是有各种各样的crash,这样那样的crash直接造成的app的闪退影响了用户的体验。一个app的crash原因有多种,但最直接的原因就是app的二进制文件在ios系统环境下遇到了不可读取的内存错误从而被系统直接kill。下面从笔者在开发过程中遇到的常见错误进行总结。

1.index 0 beyond bounds for empty array

出现该错误是因为数组的下标可访问的范围超过了数组的长度。比如你申明了一个数组

var array:NSMutableArray=[]

你还没有增加新元素就直接访问了数组的下标array[0]或直接用array[0]=1来进行赋值就会出现这样的crash。

正确做法:

用array.add(1)来进行赋值,这样array的长度变为1,再来访问array[0]或进行array[0]=2的更改

2.Fatal error: unexpectedly found nil while unwrapping an Optional values [duplicate]

一个未初始化的Optional 值在拆包的时候发现为空值(nil).

这种crash一般伴随着使用了未初始化的控件值在强制解包时出现。如

let tag=Int(sender.accessibilityLabel!)!

当sender.accessibilityLabel为nil时使用强制解包符!就会出现crash

解决方案:

增加一个判断如:

if sender.accessibilityLabel != nil{

let tag=Int(sender.accessibilityLabel!)!

}

3.signal SIGABRT

signal SIGABRT一般是由于调用了不可用的方法,或者是控件引用了不可读取的键值造成的,

4EXC_BAD_ACCESS

EXC_BAD_ACCESS访问了已经释放的内存对象。

待续。。。。

 

博主

这货来去如风,什么鬼都没留下!!!

相关推荐

嗨、骚年、快来消灭0回复。

000077;您的ip地址是127.0.0.1; 当前围观人数:2

隐私政策

橘花2支持在线更新了,点我下更新支持文档然后托给橘花,再点SSP面板右键更新