开发者社区 问答 正文

forwardInvocation: 为什么没有被执行?

- (void)viewDidLoad {
    [super viewDidLoad];
    [self performSelector:@selector(test) withObject:nil];
}

- (void)forwardInvocation:(NSInvocation *)anInvocation {
    NSLog(@"%@", anInvocation);
}

view载入方法中让viewcnotroller执行 test 方法
但是vc是没有test方法的
所以重载了 forwardInvocation: 方法。理论上这个方法应该被执行到,可是console没有打印任何东西就挂了。加断点也一样。

请问是怎么回事?

展开
收起
a123456678 2016-07-27 17:20:00 2259 分享 版权
1 条回答
写回答
取消 提交回答
  • 你需求重载方法

    • (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
      这个方法返回了对应的对象才会进- (void)forwardInvocation:(NSInvocation *)anInvocation

    否则不会进你重载的这个方法

    2019-07-17 20:00:56
    赞同 展开评论
问答地址: