최근 UITableViewController
의 tableView:cellForRowAtIndexPath
의 충돌을 가지고멀티 스레드 TableViewController
Message* res = [messages objectAtIndex:indexPath.row]
가 NSMutableArray
메시지입니다.
tableView:cellForRowAtIndexPath:
메서드에서 메시지 배열에서 메시지를 가져 오려고 시도했으나 해당 배열이 다른 스레드에 의해 변경되었을 수 있기 때문에 충돌이 발생합니다. 내 메시지 배열의 새로 고침은 다른 스레드에서 수행됩니다. 이것이 내가 이런 일이 일어 났을 것이라고 생각하는 이유입니다.
여러 스레드를 계속 사용해야하는 상황에서이 상황을 처리하는 가장 좋은 방법은 무엇입니까? 셀의 그림을 취소하고 전체 메시지 목록을 강제로 다시 그리는 방법이 있습니까? 나는 간단한 체크를하려고 노력했다.
어설 션 예외가 발생하고 앱이 다운되는 결과가 발생한다.
목표는 이러한 상황이 발생했을 때 전체보기를 정상적으로 다시로드하는 것입니다.
데이터는 백그라운드 스레드에서만 가져옵니다. NSMutableArray 메시지는 주 스레드에서 변경됩니다. – Kaupo