版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/AlenCzf/article/details/51598618
刚才遇到了个数组越界错误,下拉刷新几十次才会出现一次carsh,于是进行断点定位,却发现断点后便不会再carsh。
查了些资料,为了阻止carsh,还是要写个类别去改变他的return,贴上代码
@interface NSMutableArray (Array)
/*!
@method objectAtIndexCheck:
@abstract 检查是否越界和NSNull如果是返回nil
@result 返回对象
*/
- (id)objectAtIndexCheck:(NSUInteger)index;
@end
@implementation NSMutableArray (Array)
- (id)objectAtIndexCheck:(NSUInteger)index
{
if (index >= [selfcount]) {
returnnil;
}
id value = [selfobjectAtIndex:index];
if (value == [NSNullnull]) {
returnnil;
}
return value;
}
@end
但是这样的话还是会崩溃,感觉很糟糕,查了下代码才发现原来忘了做数组值是否为空的判断了,因此特此标记一下。