JKDataHelper这个数据容错保护库,在使用中,感觉很好的解决了数据异常造成的线上app crash的现象。但是在使用的过程中仍然发现了一些问题,比如对于某些方法的拦截还有遗漏,我这次补齐了一下,另外就是在调试阶段,有的时候我不想进行容错保护,我就是想让程序出现crash,方便我定位bug。下面就来说说自己升级改动的地方吧
1,补齐遗漏的方法
Class targetClass = NSClassFromString(@"__NSArrayI");
...
[self JKswizzleMethod:@selector(objectAtIndexedSubscript:) withMethod:@selector(JKsafeObjectAtIndexedSubscript:) withClass:targetClass];
Class targetClass = NSClassFromString(@"__NSArrayM");
...
[self JKswizzleMethod:@selector(objectAtIndexedSubscript:) withMethod:@selector(JKsafeObjectAtIndexedSubscript:) withClass:targetClass];
增加了之前漏掉的两个方法,完善对NSArray
,NSMutableArray
的数据容错。
2,添加宏定义开关
这个宏定义开关主要是在JKDataHelperMacro.h
这个文件中#define JKDataHelperDebug
的宏定义,如果不想使用JKDataHelper的拦截容错功能的话,可以将该宏定义注释掉,如果想使用的话,放开这个宏定义的注释就好了。
代码下载地址:
https://github.com/xindizhiyin2014/JKDataHelper
更多优质文章,可以微信扫码关注: