在iOS中程序的閃退大多是由于nil指針和內(nèi)存問題導(dǎo)致的寨闹,內(nèi)存問題現(xiàn)在有了ARC,并且內(nèi)存問題無法定位,@try是捕捉不到內(nèi)存錯誤的扯俱,所以我們著重解決由于nil指針導(dǎo)致的閃退释漆。
nil指針導(dǎo)致的閃退可分為:
- 數(shù)組Array會引起閃退的場景
- 插入一個nil在數(shù)組里面
2)獲取的index超過了數(shù)組對象個數(shù)
3)getObjects:range:越界
- 數(shù)組NSMutableArray引起閃退的場景:
- objectAtIndex:越界
2)setObject:atIndexedSubscript:插入nil
3)removeObjectAtIndex:越界 - nsertObject:atIndex:插入nil
5)getObjects:range:越界
- NSDictionary引起閃退的場景
- NSString *nilStr = nil; NSDictionary *dict = @{ @"key" : nilStr};
value為nil值.
4.NSString
5.NSObject
6.NSMutableString
7.NSAttributedString
8.NSMutableAttributedString
9.NSMutableAttributedString
https://github.com/chenfanfang/AvoidCrash
這個第三方的庫可以防止這些問題的出現(xiàn)。
可以在自己的項目里引入這個地方庫聪蘸,防止一些問題的出現(xiàn)辛润。