美文网首页
iOS 开发中常见的异常

iOS 开发中常见的异常

作者: 临川慕容吹雪 | 来源:发表于2016-07-21 15:33 被阅读216次

我是搬运工哦,总结一下一部分放到了这里,原文链接:iOS开发质量的那些事


NSInvalidArgumentException

非法参数异常(NSInvalidArgumentException)是 Objective - C 代码最常出现的错误,所以平时在写代码的时候,需要多加注意,加强对参数的检查,避免传入非法参数导致异常,其中尤以nil参数为甚。

1. 集合数据的参数传递

比如NSMutableArray, NSMutableDictionary的数据操作

(1) NSDictionary不能删除nil的key

(2) NSDictionary不能添加nil的对象

(3) 不能插入nil的对象

(4) 其他一些nil参数

2. 其他一些API的使用

APP一般都会有网络操作,免不了使用网络相关接口,比如NSURL的初始化,不能传入nil的http地址:

3. 未实现的方法

(1) .h文件里函数名,却忘了修改.m文件里对应的函数名

(2) 使用第三方库时,没有添加”-ObjC” flag

(3) MRC时,大部分情况下是因为对象被提前release了,在你心里不希望他release的情况下,指针还在,对象已经不在了。

NSRangeException

越界异常(NSRangeException)也是比较常出现的异常,有如下几种类型:

1. 数组最大下标处理错误

2. 下标的值是其他变量赋值

3. 使用空数组

NSGenericException

NSGenericException这个异常最容易出现在foreach操作中,在for in循环中如果修改所遍历的数组,无论你是add或remove,都会出错,比如:

执行上面的代码会出现以下的错误:

原因就在这 "for in",它的内部遍历使用了类似 Iterator进行迭代遍历,一旦元素变动,之前的元素全部被失效,所以在foreach的循环当中,最好不要去进行元素的修改动作,若需要修改,循环改为for遍历,由于内部机制不同,不会产生修改后结果失效的问题。

NSMallocException

这也是内存不足的问题,无法分配足够的内存空间

NSFileHandleOperationException

处理文件时的一些异常,最常见的还是存储空间不足的问题,比如应用频繁的保存文档,缓存资料或者处理比较大的数据

相关文章

网友评论

      本文标题:iOS 开发中常见的异常

      本文链接:https://www.haomeiwen.com/subject/orhllttx.html