调用indexPathForCell时

调用indexPathForCell时

This question already has answers here:
UITableViewCell indexPath crash in iOS7

(6个答案)


7年前关闭。




我有一个带有自定义单元格的UITableView。在每个UITableViewCell中,都有一个UIButton。我试图找出按钮被点击时位于哪个单元格中。为此,我已经这样做了:
- (IBAction)likeTap:(id)sender {


UIButton *senderButton = (UIButton *)sender;
UITableViewCell *buttonCell = (UITableViewCell *)[senderButton superview];
UITableView* table = (UITableView *)[buttonCell superview];
NSIndexPath *pathOfTheCell = [table indexPathForCell:buttonCell];
NSInteger rowOfTheCell = [pathOfTheCell row];
NSLog(@"rowofthecell %d", rowOfTheCell);

我以为这样做会很好,但是当调用indexPathForCell时,会引发异常。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCell indexPathForCell:]: unrecognized selector sent to instance 0x756d650'

关于我做错了什么的任何想法?
谢谢!

最佳答案

这是你的问题:

(UITableViewCell *)[senderButton superview]

它应该是:
(UITableViewCell *)[[senderButton superview] superview]

因为按钮的 super View 不是单元格,所以contentView是单元格的哪个 subview 。

关于ios - 调用indexPathForCell时崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17387924/

10-13 03:56