hold 调用未实现方法导致的crash的方式, 通过runtime来控制消息转发的方式来处理调用未实现方法来预防程序crash
@implementation NSObject (CrashHandle)
- (void)forwardInvocation:(NSInvocation *)anInvocation {
NSLog(@"NSObject+CrashLogHandle---class: %@ no implementation method:%@",NSStringFromClass([anInvocation.target class]),NSStringFromSelector(anInvocation.selector));
}
- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {
return [NSMethodSignature signatureWithObjCTypes:"v@:@"];
}
@end
网友评论