gpt4 book ai didi

ios - 拉动刷新表时崩溃

转载 作者:行者123 更新时间:2023-12-01 17:41:23 25 4
gpt4 key购买 nike

我的拉动刷新有一个非常奇怪的错误。我有一个函数可以刷新我的表的数据。它通过拉动刷新和viewWillAppear 调用。 .对于后者来说,同样的功能非常有效,但在拉动刷新时会崩溃。这是我的“重置”功能

-(void)reset{
refreshList = nil;
isFiltered = NO;
currentRoom = nil;
[roomList removeAllObjects];
NSMutableURLRequest *newRequest=[NSMutableURLRequest requestWithURL:
[NSURL URLWithString:@"http://192.168.1.128:8080/DJService/room/list/"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
[newRequest setHTTPMethod:@"POST"];
refreshList = [[NSURLConnection alloc] initWithRequest:newRequest
delegate:self];
}

现在,当运行 pull 来刷新时,这就是它的作用。它直接到 cellForRowAtIndexPath此行的功能和崩溃:
room = [roomList objectAtIndex:indexPath.row];

它崩溃了,因为 roomList为空且尚未填充。我不明白的是为什么它会在 reloadData 时使用此功能还没有被调用。从上面的代码中,建立了一个 url 连接来获取新数据,然后应该在 connectionDidFinishLoading 中重新加载表。但是该函数从未被调用,实际上我的表或 URL 连接的其他委托(delegate)函数都没有被调用。它直接到 cellForRowAtIndexPath并尝试加载一个空列表....为什么要这样做?

reset 中调用了完全相同的函数 ( viewWillAppear )并且工作正常。
更令人困惑的是,只有当我的表格中有 7 个或更多元素时才会发生这种崩溃(填满我的屏幕)

最佳答案

保存 roomList 的缓存,以便您知道您正在更新它并且数据不是最新的。当你填满屏幕时它调用 cellForRowAtIndexPath 的原因是因为屏幕外的单元格出列。我不会在没有数据的情况下离开表格。此外,如果您没有编写拉动刷新 Controller ,它可能会调用 reloadTable。

关于ios - 拉动刷新表时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18562044/

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