iOS 开发中常见的异常

我是搬运工哦,总结一下一部分放到了这里,原文链接: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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,397评论 0 6
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,272评论 0 4
  • 人们总是想让自己显得更理智。 是会给自己找一个托词,说……我习惯日久生情。 并且觉得一见钟情是冲动,是幼稚,是低级...
    brekker阅读 335评论 0 0
  • reset!!! 1、干掉拖延症。 2、开始看书。 3、每天500字,欢迎关注。
    江南又绿春风阅读 148评论 0 0
  • 最近下载了李宗盛的《理性与感性作品音乐会》和前两年的《既然青春留不住》两次演唱会的纪录片,百看不厌。 55岁的“小...
    很肥没有皂阅读 429评论 0 0