标签:object .class nil ati stack call ras because cal
@implementation NSArray (LXZArray)
+ (void)load {
[
super
load];
Method fromMethod = class_getInstanceMethod(objc_getClass(
"__NSArrayI"
), @selector(objectAtIndex:));
Method toMethod = class_getInstanceMethod(objc_getClass(
"__NSArrayI"
), @selector(lxz_objectAtIndex:));
method_exchangeImplementations(fromMethod, toMethod);
}
- (id)lxz_objectAtIndex:(NSUInteger)index {
if
(self.count-1 < index) {
// 这里做一下异常处理,不然都不知道出错了。
@
try
{
return
[self lxz_objectAtIndex:index];
}
@
catch
(NSException *exception) {
// 在崩溃后会打印崩溃信息,方便我们调试。
NSLog(@
"---------- %s Crash Because Method %s ----------\n"
, class_getName(self.class), __func__);
NSLog(@
"%@"
, [exception callStackSymbols]);
return
nil;
}
@finally {}
}
else
{
return
[self lxz_objectAtIndex:index];
}
}
@end
标签:object .class nil ati stack call ras because cal
原文地址:https://www.cnblogs.com/diyigechengxu/p/9219713.html