나는 즉시이 NSNotification
를 수신 할 때 컨트롤러에 의해 다시로드되는 UITableView
있습니다. cellForRowAtIndexPath
이 datasource
으로 사용하는 데이터 구조는 테이블이 새로 고침되는 동안 변경 될 수 있습니다.
배경 :
응용 프로그램의 데이터 모델은 NSNotification
을 변경할 때마다
UITableView
의
datasource
을 처리
UITableViewController
는 "
refreshReload
"방법을 실행하도록 통보됩니다. "
refreshReload
"메서드는 모델에서 새 데이터를 검색 한 다음
[tableView reloadData]
을 묻습니다. 모델이 변경되고 컨트롤러가 알림을 받고 뷰가 업데이트되는 클래스 MVC 패턴입니다. 신속하게 데이터를 변경하는 빠른 알림이있는 경우 앱이 다운됩니다. 테이블에
cellForRowAtIndexPath
이 호출되는 동안 데이터가 포함 된 데이터 구조가 실행 중에 변경됩니다.
이 문제를 방지하기 위해 따라야 할 좋은 패턴은 무엇입니까? 먼저 테이블을 다시로드하지 말고 먼저 정지를 수행 한 다음 datasource
을 변경 하시겠습니까?
이것은 정확히 내가 한 일입니다. 업데이트가 진행 중이면 tableview는 다시로드를 요청하지 않고 알림이 돌아올 때까지 기다립니다. – bendigi