gpt4 book ai didi

objective-c - UITableViewController 在网络请求完成之前执行延迟功能

转载 作者:行者123 更新时间:2023-11-28 22:46:45 24 4
gpt4 key购买 nike

我在尝试使用网络请求的结果填充 UITableView 时遇到问题。看来我的代码没问题,因为当我的网络速度很快时它可以完美运行,但是,当它不是时,功能- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath- 仍然执行,这会导致访问错误。我认为这是因为尚未填充上述函数尝试使用的数组。这让我想到了我的问题:我是否可以延迟 UITableView 委托(delegate)方法来避免这种情况?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"AlbumsCell";
//UITableViewCell *basicCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

AlbumsCell *cell = (AlbumsCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (!cell) {
**// Here is where the Thread 1: EXC_BAD_ACCESS (code=2 address=0x8)**
cell = [[[AlbumsCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}

Album *album = [_albums objectAtIndex:[indexPath row]];
[cell setAlbum:album];

return cell;
}

最佳答案

修改您的委托(delegate)方法以处理“进行中”状态的网络请求。一旦你得到你的回应,调用 tableview 上的 reloadData,它将用正确的数据重新加载表。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"AlbumsCell";
//UITableViewCell *basicCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

AlbumsCell *cell = (AlbumsCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (!cell) {
**// Here is where the Thread 1: EXC_BAD_ACCESS (code=2 address=0x8)**
cell = [[[AlbumsCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}

if ((_albums) && ([_albums count] > [indexPath row])) {
Album *album = [_albums objectAtIndex:[indexPath row]];
[cell setAlbum:album];
} else {
//show some loading message in the cell
}

return cell;
}

关于objective-c - UITableViewController 在网络请求完成之前执行延迟功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13023691/

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