Ios 拉刷新表时崩溃

Ios 拉刷新表时崩溃,ios,objective-c,cocoa-touch,uitableview,Ios,Objective C,Cocoa Touch,Uitableview,我有一个非常奇怪的错误,我拉刷新。我有一个函数,可以刷新表中的数据。拉动刷新和在视图中将出现时都会调用它。对于后者,同样的功能工作得很好,但在拖动刷新时崩溃。这是我的“重置”功能 -(void)reset{ refreshList = nil; isFiltered = NO; currentRoom = nil; [roomList removeAllObjects]; NSMutableURLRequest *newRequest=[NSMutable

我有一个非常奇怪的错误,我拉刷新。我有一个函数,可以刷新表中的数据。拉动刷新和在
视图中将出现
时都会调用它。对于后者,同样的功能工作得很好,但在拖动刷新时崩溃。这是我的“重置”功能

-(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刷新时,它的作用如下。它直接进入
cellforrowatinexpath
函数,并在此行崩溃:

room = [roomList objectAtIndex:indexPath.row];
它正在崩溃,因为
roomList
为空且尚未填充。我不明白的是,当
reloadData
还没有被调用时,为什么它会转到这个函数。从上面的代码中,建立了一个url连接以获取新数据,然后在
connectiondFinishLoading
中重新加载该表,但是该函数从未被调用,事实上,我的表或url连接的其他委托函数都没有被调用。它直接进入
cellforrowatinexpath
并尝试加载一个空列表……为什么要这样做

这个完全相同的函数(
reset
)在
视图中调用,将出现
,并且工作正常。

更令人困惑的是,只有当我的表中有7个或7个以上的元素(填满屏幕)时才会发生此崩溃。

保存房间列表的缓存,以便您知道您正在更新它,并且数据不是最新的。填充屏幕时,它调用CellForRowatineXpath的原因是屏幕外的单元格排队。我不会在没有数据的情况下离开桌子。另外,如果您没有编写pull to refresh控制器,它可能正在调用reloadTable。

保留roomList的缓存,以便您知道您正在更新它,并且数据不是最新的。填充屏幕时,它调用CellForRowatineXpath的原因是屏幕外的单元格排队。我不会在没有数据的情况下离开桌子。另外,如果您没有编写pull to refresh控制器,它可能会调用reloadTable。

谢谢,我最终更改了删除对象的位置,直到连接完成。谢谢,我最终更改了删除对象的位置,直到连接完成