runtime实用一

82 阅读1分钟

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