0

這行代碼工作完全performSelector拋出無效參數,爲什麼?

[self explodeBomb:obj]; 

,但如果我用下面的行替換它,我得到一個NSInvalidArgument例外,其原因是無法識別的選擇。

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

方法的定義如下:

-(void)explodeBomb:(SKNode *)bomb 

我知道,這已經是我不理解一些基本的東西。但爲什麼我能夠直接調用該方法而沒有問題,但是當我嘗試使用performSelector時,它會爆炸?對於記錄obj被定義爲一個ID。我嘗試更改explodeBomb的簽名以獲取ID,然後將其明確地轉換爲方法內部,但拋出了相同的異常。任何人都知道我做錯了什麼?

回答

3

使用:,寫像下面

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

因爲你的方法,所以你必須指定:

+0

感謝explodeBomb有一個參數..哇......我累了。 – user282172

+0

雖然我會認爲與對象的事實不是零將照顧,但教訓,謝謝。 – user282172

+0

歡迎您。 :-) – san

相關問題