我正在使用选择器来动态调用 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];
}