常见crash
程序员文章站
2024-03-14 23:23:35
...
1. 参数的默认值
- 使用指针 需要做非空判断
- nil 判断
- [NSNull null]判断
NSDictionary&&NSArray
- 代码里面很多地方使用了setObject:forKey以及其它的初始化, 如果插入nil,崩溃
- AddObject的时候,add nil也会crash
- objectForKey: 类型错误
数据类型错误
简单判断dictionary和array不为空,里面实际没有数据。后端的返回的数据 对类型做判断,dictionary、array
数组越界
- objectAtIndex 取值的时候一定要做数组大小判断,防止越界取值。涉及index的时候,最好都做检查
substringWithRange/substringFromIndex/substringToIndex
涉及range的操作都需要做一下NSString长度的判断
textView.text = [textView.text substringWithRange:NSMakeRange(0, 100)];
使用delegate,Notification NSTimer 没有取消
使用delegate,Notification,NSTimer后,不使用了要注意取消掉,经常出现controller已经销毁,回调回来造成崩溃。
项目圈子、navigation delegate、collectionview 、tableview
使用不熟悉的api的时候
系统api自己不熟悉的时候,看一下api支持的最低版本,高版本的api在低版本使用的时候,会造成崩溃。
多线程操作
明确函数的生命周期,动画结束,block的使用,多线程读写,多线程函数的使用。
遍历数组的同时,又改变了数组的顺序
enumerateObjectsUsingBlock遍历的时候 exchangeObjectAtIndex:withObjectAtIndex insert del 的操作
推荐阅读
-
常见crash
-
sed 常见用法 博客分类: linux命令 sedsed常见用法
-
[转] Linux中find常见用法示例 博客分类: linux linuxfind
-
推荐系统的常见推荐算法的性能比较 博客分类: 推荐系统 推荐系统svdknn协同过滤
-
网站攻击常见的几种方式
-
BI建模原则和常见问题 博客分类: 商业智能 商业智能BI建模项目实施
-
数据分析的一些常见问题 博客分类: 数据分析 大数据数据挖掘分析师
-
Oracle高并发系列1:DML引起的常见问题及优化思路 oraclemysqlsqlcachemongodb
-
IOS应用开发常见错误与解决方案
-
PHP 中使用ajax时一些常见错误总结整理