0

我正在使用选择器来动态调用 Objective-C 中的函数。我的问题是,如果我传递一个不存在的函数名,我的@try/@catch块不会捕获异常。

在控制台中,我得到一个 uncaught NSInvalidArgumentException,再往下,我得到一个 uncaught NSException

我尝试在标准@try/@catch块中捕获这两种类型的异常,但它们没有注册。如果我尝试捕捉,Xcode 不会让我编译,NSInvalidArgumentException因为它不是可识别的类型。

关于如何解决这个问题的任何想法?

@try {
    SEL s = NSSelectorFromString(@"funName");
    [self performSelector:s withObject: nil];
} 
@catch (NSException/NSInvalidArgumentException exception) {
     NSLog(@"ERROR: %@", [exception message/reason];
} 
4

1 回答 1

5

许多人认为这是一个错误。

http://openradar.appspot.com/8081169

通过测试类似的代码,我可以让它在设备上工作,但不能在模拟器上工作。

于 2011-06-20T14:41:39.383 回答