iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – tableview – 无法识别的选择器didSelectRowAtIndexPath大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我的应用程序在选择tableView中的内容时遇到了问题.这不是100%可重复的,但它经常发生. 发生的事情是在我的EventListViewController类(UITableViewController的子类)中,我覆盖了didSELEctRowATindexPath函数,因为我在这个类中也使用了搜索栏,我希望它只在你不搜索时选择. 代码如下所示: -(void)tableView:(UIT
我的应用程序在选择tableView中的内容时遇到了问题.这不是100%可重复的,但它经常发生.

发生的事情是在我的EventListViewController类(UITableViewController的子类)中,我覆盖了didSELEctRowATindexPath函数,因为我在这个类中也使用了搜索栏,我希望它只在你不搜索时选择.

代码如下所示:

-(void)tableView:(UITableView *)tableView didSELEctRowATindexPath:(NSIndexPath *)indexPath
{
    if(!searching)
        [super tableView:tableView didSELEctRowATindexPath:indexPath];
}

然而,当它崩溃时,我打破异常,这是我得到的消息,在调用超级函数的行上:

[EventListViewController tableView:didSELEctRowATindexPath:]: unrecognized SELEctor sent to instance 0xa648e50

我在调试器上打印了一些东西,这对我来说都很好看:

(lldb) po 0xa648e50
(int) $1 = 174362192 <EventListViewController: 0xa648e50>

(lldb) po self
(EventListViewController *) $2 = 0x0a648e50 <EventListViewController: 0xa648e50>

(lldb) po tableView
(UITableView *) $3 = 0x070fd400 <UITableView: 0x70fd400; frame = (0 0; 320 367); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x6e46750>; contentOffset: {-0,-0}>

(lldb) po indexPath
(NSIndexPath *) $4 = 0x06e8caf0 <NSIndexPath 0x6e8caf0> 2 indexes [1,1]

(tableView有2个部分,第二部分有2个部分)

任何人有任何想法发生了什么?如果您需要更多信息,请与我们联系.

注意:经过更多调查后,我发现这是100%可重复的,具有以下步骤:
1:加载应用程序,然后单击两个条目中的任何一个.
2:返回tableView控制器
3:点击以下两个条目,在不应该有单元格的空白处
该应用程序将崩溃,但请注意indexPath没有说它试图选择一个超出tableView边界的单元格,只是因为tableView didSELEctRowATindexPath方法不存在

解决方法

在tableView:didSELEctRowATindexPath:中调用super是不必要的.如果我没记错的话,UITableViewController不提供该方法认实现.因此,您对super的调用会导致崩溃.
@H_618_53@

大佬总结

以上是大佬教程为你收集整理的objective-c – tableview – 无法识别的选择器didSelectRowAtIndexPath全部内容,希望文章能够帮你解决objective-c – tableview – 无法识别的选择器didSelectRowAtIndexPath所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。