2011-09-13 2 views
1

NSFetchedResultsController를 통해 UITableView를 관리했지만 NSFetchedResultsController가 데이터를로드하는 동안 모든 UI가 차단되었습니다 (탭, 스크롤 등의 작업을 수행 할 수 없음). 이 문제를 해결할 수있는 해결책이 있습니까? 감사!!! 응용 프로그램 사용자 친화적 만들 때 기억하는 것이 중요하다NSFetchedResultsController 데이터로드 중 UI가 차단됨

+0

배치 크기를 줄일 수 있습니다 – Robin

+0

이제 배치 크기는 20입니까? –

답변

1

한 가지입니다

당신이 홈페이지 스레드에 모든 집중, 비 UI 관련 계산이있는 경우, 당신이 뭔가를하고있는 잘못된! 메인 스레드를 만들기

UI만을 만들 것입니다 UI 동결하지 않습니다 있는지, 또는 당신이 그것을 설명으로 "차단"얻는다. 따라서 귀하의 NSFetchedResultsController은 이러한 일이 발생하지 않도록 다른 스레드에 있어야합니다.

NSOperation은 확실히 당신이 설명하는 문제로가는 길입니다. Here은 유사한 시나리오와이를 수정하는 방법을 설명하는 자습서 및 샘플 코드입니다.

희망이 도움이됩니다!

+0

다른 문제가있는 것 같습니다. –

+0

인터넷 (필요한 경우)에서 데이터를 다운로드 한 다음 코어 데이터의 데이터를 UITableView로로드 –

+0

좋습니다! 이제는 모든 기능을 하나의 메소드에 넣고 그 메소드를 NSOperation에 랩 한 다음 그 메소드가 완료되면'reloadData'를 호출하면 UI가 잠기지 않을 것입니다. – msgambel