美文网首页
使用runtime的系统方法拦截避免数组越界闪退

使用runtime的系统方法拦截避免数组越界闪退

作者: 何大双 | 来源:发表于2019-02-13 10:01 被阅读0次

在工程中我们有很多地方通过方法objectAtIndex:取NSArray或者NSMutableArray存储的对象,有时候因为算法原因或者其他原因导致数组越界,从而导致APP闪退。一般做法是在取对象的地方判断索引(index)与数组的对象数量的值,来避免越界取值。这种方法是可以解决问题,但是需要写很多重复的代码,而且不能保证所有地方都判断到,特别是对于开发小白可能根本想不到。我们使用class的category和runtime的黑魔法来拦截objectAtIndex:方法,统一判断处理。

图1

注意NSMutableArray 的Class为   class = NSClassFromString(@"__NSArrayM");

相关文章

网友评论

      本文标题:使用runtime的系统方法拦截避免数组越界闪退

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