UIButton addTarget 与 UIViewCollectionView 内的参数

Posted

技术标签:

【中文标题】UIButton addTarget 与 UIViewCollectionView 内的参数【英文标题】:UIButton addTarget with parameters inside UIViewCollectionView 【发布时间】:2014-11-08 13:49:34 【问题描述】:

当我在 UiCollectionView 中将目标添加到 UIButton 时出现以下错误。

我的代码:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

    static NSString *identifier = @"Cell";

    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];

    UIButton *btnBonus = (UIButton *) [cell viewWithTag:405];
    [btnBonus setTag: [arrayTruebonusTags[0] intValue]];
    [btnBonus addTarget:self action:@selector(goBonus:) forControlEvents:UIControlEventTouchUpInside];

    return cell;



- (void) goBonus:(id) sender

    UIButton *button = (UIButton *) sender;

我得到这个错误:

[Controller goBonus]: unrecognized selector sent to instance 0x16dc1190
2014-11-08 11:11:41.991 demo[3570:1707966] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Controller goBonus]: unrecognized selector sent to instance 0x16dc1190'
*** First throw call stack:
(0x299cdc1f 0x375b2c8b 0x299d3039 0x299d0f57 0x29902df8 0x2cebdc2b 0x2cebdbd1 0x2cea8863 0x2cebd63d 0x2ce8242d 0x2ceb72f1 0x2ceb6bcd 0x2ce8d3dd 0x2d100c29 0x2ce8be39 0x29994377 0x29993787 0x29991ded 0x298e0211 0x298e0023 0x30cbf0a9 0x2ceec1d1 0xf3599 0x37b32aaf)
libc++abi.dylib: terminating with uncaught exception of type NSException

问题是,如果我在没有 goBonus 的情况下做同样的事情:并且在方法 -goBonus 中它就像一个魅力。

【问题讨论】:

【参考方案1】:

您发布的崩溃日志抱怨缺少方法[Controller goBonus]

您发布的代码显示您添加了操作goBonus:(带有冒号,表示它需要一个参数)。

崩溃与您的代码不匹配的事实告诉我您在某处存在不匹配。 addTarget 方法中的选择器@selector(goBonus:) 对您发布的方法是正确的,但崩溃日志抱怨缺少选择器@selector(goBonus)(没有冒号,因此没有参数。)

你需要解决这个问题。

【讨论】:

你是对的!是我的错,在情节提要中,我有一个之前忘记删除的 goBonus。谢谢!。 如果我解决了您的问题,您应该接受我的回答,以便其他人知道该问题已得到解答。 是的,抱歉还有 3 分钟验证,但我正在做其他事情,你来了,谢谢!

以上是关于UIButton addTarget 与 UIViewCollectionView 内的参数的主要内容,如果未能解决你的问题,请参考以下文章

UIButton 类参考文档上的 addTarget 方法

UIButton 的 Swift addTarget 在 UIView 中不起作用

UIbutton frame 和 addtarget 不同

具有自定义视图的 UIButton - addTarget:action:forControlEvents: 不起作用

UIButton.addTarget 无法正常工作。似乎是一个时间问题?

Swift4 - UIButton 在 UIView 中使用 addTarget 时出错