새로 고침을하는 데 매우 이상한 버그가 있습니다. 내 테이블에 대한 내 데이터를 새로 고치는 기능이 있습니다. 새로 고침을 위해 및을 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];
}
이제 풀을 실행하여 새로 고침을 할 때 수행하는 작업이 여기에 있습니다. 그것은 바로이 라인에 cellForRowAtIndexPath
기능과 충돌로 이동 :
room = [roomList objectAtIndex:indexPath.row];
roomList
가 비어 아직 채워되지 않았기 때문에 그것은 충돌입니다. 내가 이해할 수없는 것은 왜 reloadData
이 아직 호출되지 않았을 때이 함수로 갈 것인지입니다. 위의 코드에서 URL 연결을 통해 새 데이터를 가져온 다음 테이블을 connectionDidFinishLoading
에 다시로드해야하지만이 함수는 호출되지 않습니다. 사실 내 테이블 또는 URL 연결에 대한 다른 대리자 함수는 호출되지 않습니다. 그것은 바로 cellForRowAtIndexPath
으로 가고 빈 목록을로드하려고 시도합니다 .... 왜이 일을하고 있습니까?
정확히 똑같은 기능 (reset
)이 viewWillAppear
에서 호출되었으며 정상적으로 작동합니다.
더 혼란스럽게 만드는 것은 내 테이블에 7 개 이상의 요소가있을 때만 발생합니다 (화면을 채우는 것)
감사합니다. 연결이 완료 될 때까지 객체를 제거한 위치가 변경되었습니다. –