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

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

图1

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

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

推荐阅读更多精彩内容