关于引起iOS App异常CRASH代码的原因汇总
在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回复。