0

このコード行は完全に機能します

[self explodeBomb:obj];

しかし、それを次の行に置き換えると、NSInvalidArgument Exception が発生します。理由は認識されないセレクターです。

 [self performSelector:@selector(explodeBomb) withObject:obj ];

メソッドの定義は次のとおりです。

 -(void)explodeBomb:(SKNode *)bomb

私は知っています、これは私が根本的なことを理解していないに違いありません。しかし、問題なくメソッドを直接呼び出すことができるのに、なぜメソッドを使用しようとするperformSelectorと爆発するのでしょうか? レコードの obj は ID として定義されます。私は、explodeBomb の署名を変更して ID を取得し、それをメソッド内で明示的にキャストしようとしましたが、同じ例外がスローされました。誰が私が間違っているのか知っていますか?

4

1 に答える 1

3

以下のように使用:して記述します

 [self performSelector:@selector(explodeBomb:) withObject:obj ];

メソッドexplodeBombには引数があるため、指定する必要があります:

于 2014-01-09T07:39:15.010 に答える