0

セレクターを使用して、Objective-Cの関数を動的に呼び出しています。私の問題は、存在しない関数名を渡した場合、 @try/ブロックが例外をキャッチしないことです。@catch

コンソールでは、私は捕らえNSInvalidArgumentExceptionられず、さらに下では捕らえられませんNSException

@try標準/ブロックで2種類の例外をキャッチしようとしました@catchが、登録されていません。NSInvalidArgumentExceptionXcodeは、認識されたタイプではないため、キャッチしようとしてもコンパイルできません。

これを解決する方法について何かアイデアはありますか?

@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 に答える