The*_*One 5 xcode objective-c uitableview ios
我的应用程序在tableView中选择某些内容时遇到了问题.这不是100%可重复的,但它经常发生.
发生的事情是在我的EventListViewController类(UITableViewController的子类)中,我覆盖了didSelectRowAtIndexPath函数,因为我在这个类中也使用了搜索栏,我希望它只在你不搜索时选择.
代码如下所示:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(!searching)
[super tableView:tableView didSelectRowAtIndexPath:indexPath];
}
Run Code Online (Sandbox Code Playgroud)
然而,当它崩溃时,我打破异常,这是我得到的消息,在调用超级函数的行上:
[EventListViewController tableView:didSelectRowAtIndexPath:]: unrecognized selector sent to instance 0xa648e50
Run Code Online (Sandbox Code Playgroud)
我在调试器上打印了一些东西,这对我来说都很好看:
(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]
Run Code Online (Sandbox Code Playgroud)
(tableView有2个部分,第二部分有2个部分)
任何人有任何想法发生了什么?如果您需要更多信息,请与我们联系.
注意:经过更多调查后,我发现这是100%可重现的,具有以下步骤:1:加载应用程序,然后单击两个条目中的任何一个.2:回到tableView控制器3:点击以下两个条目,在不应该有单元格的空白处应用程序将崩溃,但请注意indexPath没有说它试图选择一个单元格在tableView的边界之外,只是tableView didSelectRowAtIndexPath方法不存在
Dav*_*ong 21
对superin 的调用tableView:didSelectRowAtIndexPath:是不必要的.如果我没记错的话,UITableViewController不提供该方法的默认实现.因此,您对super的调用会导致崩溃.
| 归档时间: |
|
| 查看次数: |
2674 次 |
| 最近记录: |