AvoidCrash 相机崩溃问题
AvoidCrash的使用用于抓取crash上次日志信息。
在开启unrecognized selector sent to instance并且控制台输出后,点击打开相册出现崩溃。
崩溃信息
[NSInvocation setArgument:atIndex:]: index (2) out of bounds [-1, 1]
就是在ms存在的情况下还进行了,消息转发。
这个时候,吧下面的防盗括号里面即可。
修改后的方法如下。
- (NSMethodSignature *)avoidCrashMethodSignatureForSelector:(SEL)aSelector {
NSMethodSignature *ms = [self avoidCrashMethodSignatureForSelector:aSelector];
BOOL flag = NO;
if (ms == nil) {
for (NSString *classStr in noneSelClassStrings) {
if ([self isKindOfClass:NSClassFromString(classStr)]) {
ms = [AvoidCrashStubProxy instanceMethodSignatureForSelector:@selector(proxyMethod)];
flag = YES;
break;
}
}
//转发判断放在ms找不到方法时候,才进行转发。
if (flag == NO) {
NSString *selfClass = NSStringFromClass([self class]);
for (NSString *classStrPrefix in noneSelClassStringPrefixs) {
if ([selfClass hasPrefix:classStrPrefix]) {
ms = [AvoidCrashStubProxy instanceMethodSignatureForSelector:@selector(proxyMethod)];
}
}
}
}
return ms;
}