gpt4 book ai didi

iphone - 使用调度机制时未单击 Tableview 单元格

转载 作者:行者123 更新时间:2023-11-28 19:16:03 26 4
gpt4 key购买 nike

我正在尝试利用调度机制在后台获取内容,并在获取内容后更新 tableview,但是,这种机制有效,但一旦重新加载,tableviewcell 将无法点击。当我删除 [self._tableView reloadData] 时,它是可点击的。下面是我的代码。有什么建议吗?

NSString *const cellIdentifier = @"AutoFill";    
UITableViewCell *cell = [_tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);

dispatch_async(queue, ^{
NSString *te = [tableData objectAtIndex:indexPath.row];
NSArray *a = [te componentsSeparatedByString:@" "];

dispatch_sync(dispatch_get_main_queue(), ^{

cell.accessoryType = UITableViewCellAccessoryNone;
[self._tableView reloadData];
});
});


return cell;

最佳答案

无需在后台访问该数组 - 您只是为了增加复杂性而增加复杂性,这永远没有用。

- The tableView loads it's data and asks the dataSource for a row
- You create a row but then ask the table to reload
- The tableView loads it's data and asks the dataSource for a row
- You create a row but then ask the table to reload
- The tableView loads it's data and asks the dataSource for a row
- You create a row but then ask the table to reload
- The tableView loads it's data and asks the dataSource for a row
- You create a row but then ask the table to reload

我想你明白了......

当您提供一行时,您不应该调用 reloadData,它将显示在 tableView 中

注意如果你做了正常的事情并且没有在后台获取数据,这甚至不是你需要担心的问题

更新

您的代码在后台访问一个数组 - 对它没有任何用处,然后回调到主线程以设置一个甚至不由后台线程中的工作结果确定的属性。您实际上想要实现什么目标?

关于iphone - 使用调度机制时未单击 Tableview 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11996366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com