gpt4 book ai didi

ios - "no index path for table cell being reused"导致应用崩溃

转载 作者:行者123 更新时间:2023-11-29 12:57:27 24 4
gpt4 key购买 nike

我的单元格有两个 View 。点击时,我会在展开 View 和折叠 View 之间切换。我有两个单独的自定义 tableview 单元格

如果我使用 [tableView reloadData] 它工作正常,但当我使用 reloadRowsAtIndexPaths 时应用程序崩溃。它在不使用断点的情况下工作正常,尽管我怀疑不使用断点可能更难重现。我的单元格中有一个 UIWebView,可以点击 UIWebView 我正在使用 UITapGestureRecognizer

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;

- (void)tapAction:(UITapGestureRecognizer *)sender {
UIView* cell = sender.view;
while (![cell isKindOfClass:[UITableViewCell class]]) {
cell = [cell superview];
}
NSIndexPath* i = [self.tableView indexPathForCell:(UITableViewCell *)cell];
[self didSelectRowAtIndexPath:self.tableView ForIndexPath:i];
}

代码到达 willdisplaycell 但之后崩溃了。我刚刚提交了这段代码,在我同事的机器上,它只显示“没有重用表格单元格的索引路径”,没有任何崩溃。

控制台上唯一的错误是“没有重复使用的表格单元格的索引路径”。在代码中,它在 main.m 文件中显示 EXC_BAD_ACCESS。 Library/Logs/DiagnosticReports 中没有崩溃报告。

在跟踪/var/log/system.log 时我得到了。

Dec 23 23:59:55 Ankushs-MacBook-Pro.local com.apple.debugserver-300.2[50272]: Got a 'k' packet, killing the inferior process.
Dec 23 23:59:55 Ankushs-MacBook-Pro.local com.apple.debugserver-300.2[50272]: Sending ptrace PT_KILL to terminate inferior process.
Dec 23 23:59:55 Ankushs-MacBook-Pro.local com.apple.debugserver-300.2[50272]: 1 +0.000000 sec [c460/0303]: error: ::ptrace (request = PT_THUPDATE, pid = 0xc45d, tid = 0x1a03, signal = 0) err = Resource busy (0x00000010)
Dec 23 23:59:55 Ankushs-MacBook-Pro.local com.apple.debugserver-300.2[50272]: 2 +0.004694 sec [c460/0303]: error: ::task_info ( target_task = 0x1603, flavor = TASK_BASIC_INFO, task_info_out => 0x7fff52208f90, task_info_outCnt => 10 ) err = (ipc/send) invalid destination port (0x10000003)
Dec 23 23:59:55 Ankushs-MacBook-Pro.local com.apple.debugserver-300.2[50272]: Waited 0 ms for process to be reaped (state = Exited)
Dec 23 23:59:56 Ankushs-MacBook-Pro.local com.apple.debugserver-300.2[50333]: debugserver-300.2 for x86_64.
Dec 23 23:59:56 Ankushs-MacBook-Pro.local com.apple.debugserver-300.2[50333]: Listening to port 31030 for a connection from localhost...
Dec 23 23:59:56 Ankushs-MacBook-Pro.local com.apple.debugserver-300.2[50333]: Got a connection, waiting for process information for launching or attaching.
Dec 23 23:59:56 Ankushs-MacBook-Pro kernel[0]: warning: debugserver(50333) performed out-of-band resume on FormulaApp(50332)
Dec 23 23:59:57 Ankushs-MacBook-Pro.local com.apple.debugserver-300.2[50333]: Attach succeeded, ready to debug.

最佳答案

可以尝试在webView上禁用触摸,在didSelectRow中拦截触摸。

也可以代替 [tableView reloadData] 尝试使用:

[tableView beginUpdates];
[tableView endUpdates];

它几乎总是能更好地折叠表格 View 。

关于ios - "no index path for table cell being reused"导致应用崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20680770/

24 4 0