为什么它不能识别我的选择器?

时间:2011-07-01 12:10:41

标签: iphone objective-c xcode

我想更改 UIButton 的操作,触摸按钮时会出现异常。

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

grabbOffer和redeemOffer是没有参数的IBActions。

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [DetailViewController grabbOffer:]:无法识别的选择器发送到实例0x1e8bf0'

可能是什么原因?

2 个答案:

答案 0 :(得分:3)

您是否尝试删除冒号:

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

如果要使用参数,请使用分号:

-(void)grabbOffer:(id)sender;

答案 1 :(得分:1)

如果你的函数没有参数使用:@selector(grabbOffer)而不是@selector(grabbOffer:)