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