-1

질문과 마찬가지로.비동기식으로 50 개의 UITableviews로드하기

나는 NSOperationQueues을 시도했지만 조작 블록에서 무엇을 실행할 것인지 혼란 스럽습니다. 작업 대기열에로드하려면 reloadData 함수를 시도했지만 모든 UITableView이 즉시 나타납니다.

나는 UITableView에 사용자 지정 셀을 사용하고 있습니다.

TIA 데이터 로딩 당신이 UI에 변화를 트리거하기 전에 메인 쓰레드로 돌아 있는지 확인해야 백그라운드 스레드에서 수행하는 경우

+0

GCD를 사용해 보셨습니까? 이를 위해 직렬 디스패치 대기열을 사용할 수 있습니다. –

+0

화면에 50 개의 테이블 뷰가 모두있는 경우를 제외하고는 잘못된 작업을 수행하고 있습니다. 50 개의 데이터 소스/셀 델리게이트와 하나의 테이블 뷰가 있어야합니다. 스크롤 위치를 저장하고 단순히 데이터 세트를 전환하여 데이터 세트간에 전환하십시오. –

답변

0

. 따라서 reloadData으로 전화 할 때 주 스레드에서 실행되는지 확인하십시오.

[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO]; 
+0

감사합니다.하지만 테이블 뷰가 잘로드됩니다. 단지 그들이 많은 시간을 들여서 페이지에 동시에 나타납니다. 내가보기에 50 Tablevws가 있고 나는 그들 각각이 하나씩 데이터를로드하기를 원한다. 나는 TableConview의 "ReloadData"메소드를 MaxConcurrentOperations가 1로 설정된 작업 대기열에 추가하려고 시도하고 백그라운드에서 실행됩니다. 아직도 운이 없다. 이 줄을 추가하면 변경 될 수 있습니까? 왜냐하면 TableView의 델리게이트 메소드는 항상 메인 스레드에서 호출되기 때문입니다. – NSFeaster

+0

대기열 설정은 정상적으로 들리지만 각 작업은 다음 대기열이 시작되기 전에 (기본 스레드의) 테이블보기를 다시로드해야합니다. – Wain

관련 문제