質問

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

[self explodeBomb:obj];
.

しかし、私がそれを次の行で置き換えるならば、私はNSINVALIDARGUMEN例外を取得し、その理由は認識されないセレクタである。

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

この方法の定義は次のとおりです。

 -(void)explodeBomb:(SKNode *)bomb
.

私は知っている、これは私が基本的なものを理解していないことを私になさなければなりません。しかし、私は問題なしでこの方法を直接呼び出すことができるのはなぜですか。レコードobjはIDとして定義されています。explodeBombの署名を変更してIDを取り、そのメソッド内に明示的にキャストしても、同じ例外を投げました。誰かが私が間違っていることを何をしているのか知っていますか?

役に立ちましたか?

解決

:を使用して、以下のように書き込む

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

あなたのメソッドexplodeBombに引数があるため、:

を指定する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top