2011-07-01 50 views
0

我想改變一個UIButton的動作,當觸摸按鈕時,它給了我一個例外。爲什麼它不能識別我的選擇器?

[grabRedeem removeTarget:self action:@selector(grabbOffer:) forControlEvents:UIControlEventTouchUpInside]; 
[grabRedeem addTarget:self action:@selector(redeemOffer:) forControlEvents:UIControlEventTouchUpInside]; 

grabbOffer和redeemOffer是不帶參數實現的IBAction。

終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因是: ' - [DetailViewController grabbOffer:]:無法識別的選擇發送到實例0x1e8bf0'

可能是什麼原因?

+5

注意結腸。 'grabbOffer:'和'grabbOffer'不一樣。前者有一個參數,後者沒有。 – albertamg

+0

我試過沒有,同樣的錯誤 – jorjap

+2

發佈您的grabOffer和redeemOffer方法。我的猜測是你在選擇器中的'grabbOffer:'上有一個額外的'b'。 – Rog

回答

1

如果功能不帶任何參數來實現使用:@selector(grabbOffer),而不是@selector(grabbOffer :)

3

你有沒有試圖刪除冒號:

[grabRedeem removeTarget:self action:@selector(grabbOffer) forControlEvents:UIControlEventTouchUpInside]; 
[grabRedeem addTarget:self action:@selector(redeemOffer) forControlEvents:UIControlEventTouchUpInside]; 

您使用分號,當你想要使用參數:

-(void)grabbOffer:(id)sender; 
+0

冒號,而不是分號。 – zaph

+0

:-)你是對的! –

相關問題