2012-04-26 4 views
0

검색 표시 줄이 있고 인터넷에서 정보를 검색 한 다음 url에서 NSXMLParser를 시작한 다음 UITableView에서 구문 분석 된 정보를 표시하지만이 프로세스에서 UI가 차단되고 원하는 경우 다른 검색을 수행하기 위해 검색을 취소하려면 할 수 없다. 파서가 마칠 때까지 기다려야한다. 그래서 내 질문은 올바른 해결책이 있다면 다른 스레드에서 수행 할 수 있고 필요한 경우 다른 검색을 수행하기 위해 검색을 중단한다. ? ... NSOperation 클래스를 알고 있지만이 클래스가 데이터를 표시하기 위해 테이블 ​​뷰에 정보를 제공 할 수있는 방법은 무엇입니까? ... 그리고 다른 작업을 수행하기 위해 작업을 중단하는 방법은 무엇입니까? 지금블록 UI없이 NSXMLParser 및 NSOperation 사용

내가 검색 할이 작업을 수행 :

답변

0

은 UI를 차단 피하려면 ...

[self performSelector:@selector(request:) withObject:searchText afterDelay:0.7]; 

다음, 다른 클래스에 NSXMLParser로 검색을 요청 방법 시작을, 당신은 사용합니다

[self performSelectorInBackground:@selector(request:) withObject:text];

나는 NSOperation으로 많은 일을하지 않은,하지만 당신은 오페라 완료 블록을 설정할 수 있습니다 같은 문서에서, 그것은 본다 기이있는 당신이 뭔가 또한 [self performSelectorOnMainThread:@selector(populateMyTable) withObject:nil waitUntilDone:NO];

처럼, NSOperation 당신이 당신의 검색 방법을 중단으로까지 원하는 것을 제공 할 것으로 보인다 인스턴스 메서드 cancel을 가지고 호출 할 수 있습니다.

+0

답변 해 주셔서 감사합니다. – Piero