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。谢谢,我最终更改了删除对象的位置,直到连接完成。谢谢,我最终更改了删除对象的位置,直到连接完成