我的拉动刷新有一个非常奇怪的错误。我有一个函数可以刷新我的表的数据。它由 pull to refresh和on调用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 连接的其他委托函数。它直接进入cellForRowAtIndexPath
并尝试加载一个空列表....为什么要这样做?
这个完全相同的函数 ( reset
) 被调用viewWillAppear
并且工作正常。
更令人困惑的是,只有当我的表格中有 7 个或更多元素时才会发生这种崩溃(填满我的屏幕)