2010-03-04 4 views
1

나는 coredata로 응용 프로그램을 구축 중입니다. 거의 끝났지 만 문제가 있습니다.SearchDisplayController & Coredata Search는로드하는 동안 애플리케이션을 잠급니다. 어떻게해야합니까?

내 응용 프로그램에 검색 섹션을 넣으 려합니다. 나는 지금 그것을했고 일하고있다. 그러나 이상한 것이있다. 그리고 내가 풀 수 없었다.

검색 버튼을 클릭하면 내 조건을 준비하고 데이터베이스를 검색하고 데이터를 tableview에 표시합니다.

내 데이터베이스에 약 18000 개의 항목이 있으며 일부 단어를 검색 할 때 프로세스 최종 응용 프로그램이 원하는대로 내 tableview를 표시 한 후 잠시 동안 응용 프로그램이 잠길 수 있습니다.

이 긴 진행 상황이 진행되는 동안 활동 표시기 또는 이와 비슷한 것을 넣길 원하지만 그 시간에 응용 프로그램이 잠겨 있기 때문에 그럴 수 없습니다.

이 경우 어떻게해야합니까? 나는 해결책을 찾을 수 없었다.

도움 주셔서 감사합니다.

감사합니다.

답변

0

새 스레드에서 검색을 시작해야합니다. 주 스레드는 표시기보기를 표시합니다 (주 스레드에서만 시각적 인 작업을 할 수 있습니다).

//make UIIndicatorView visible and start a new thread 

[NSThread detachNewThreadSelector:@selector(doSearch) toTarget:self withObject:nil];

-(void) doSearch{ 
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
//do search stuff; 
.... 
// tell your main thread that search is done 
[self performSelectorOnMainThread:@selector(searchDone) withObject:nil waitUntilDone:NO]; 
[pool release]; } 
-(void) searchDone{ //hide UIIndicator view 
} 
관련 문제