我正在使用选择器动态调用Objective-C中的函数。我的问题是,如果我传递一个不存在的函数名,我的@try
/ @catch
块没有捕获异常。
在控制台中,我得到了一个未被发现的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 :(得分:5)