2011-07-01 15 views
0

UIButtonのアクションを変更したいのですが、ボタンを押したときに例外が表示されます。セレクタが認識されないのはなぜですか?

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

grabbOfferおよびredeemOfferは、パラメータなしで実装されたIBActionsです。

がキャッチされない例外により 'NSInvalidArgumentException'、理由にアプリを終了: - 理由かもしれない何

'[DetailViewController grabbOffer::]認識されていないセレクタは、インスタンス0x1e8bf0に送られましたか'?

+5

コロンに注意してください。 'grabbOffer:'と 'grabbOffer'は同じではありません。前者にはパラメータがあり、後者にはパラメータがありません。 – albertamg

+0

私は試してみましたが、あなたのgrabOfferメソッドとredeemOfferメソッドを同じエラー – jorjap

+2

に投稿してください。私の推測では、あなたのセレクタに '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

:-)そうですね! –

関連する問題