NSInvalidArgumentException未在代码中捕获

问题描述:

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

在控制台中,我收到一个未捕获的NSInvalidArgumentException,然后进一步下降,我得到一个未捕获的NSException

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

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

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

你能告诉我们一些代码吗? –

+0

当然,没问题。对不起,我第一次没有第一​​次添加代码。 – conor

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

http://openradar.appspot.com/8081169

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

+0

呃,这似乎并没有为我工作:( 你试过上面的代码? 感谢您的输入,虽然。 – conor

+2

@Conor H - 这是一个答案给你的问题 - 这是一个错误模拟器,并建议你提交一个bug。你有没有在设备上试过这个鳕鱼? – Abizern

+0

Conor的评论其实是在我编辑我的答案之前 –