NSXMLParser를 사용하여 내선을 구문 분석합니다. API 데이터. 또한 extton API에서 검색 한 정보를 유지하기 위해 Singleton 공유 배열 var를 사용합니다.중복 검색 결과 및 XMLParser 배열 새로 고침과 관련된 문제
이 정보는 동적이며 지금은 일이 내가 사용하여 기존 배열의 내용을 삭제, 사용자 유형 아무것도 즉시이다
UISearchBar
에서 사용자 유형 아무것도 changesas [retrievedArray removeAllObjects]따라서 검색 막대의 현재 용어를 기반으로 retrieveArray를 새로 고칩니다.
사용자가 느리게 입력하면 정상적으로 작동합니다. 그러나 사용자가 매우 빠르게 입력하면 중복 검색 결과가 표시됩니다. retrieveArray 내용이 지울 충분한 시간을 갖지 않기 때문에 이것은 가정합니다.
아직 문제를 해결하기 위해 노력하고 있습니다. 제발 좀 더 수정을 제안하십시오.
해결해 주시겠습니까?
[NSAutoreleasePool alloc] init]; [self setURL : url]; \t NSThread myThread * = [NSThread ALLOC] initWithTarget : 자기 선택기 : @selector을 (시험 : \t \t \t \t \t \t \t \t \t \t \t \t 개체 : 닐]; [retrievedArray removeAllObjects]; \t [myThread start]; [풀 릴리스]; 스레드없이 시도했지만 여전히 빠른 타이핑에 문제가 있습니다. 다른 문제를 제안 해주십시오. – testndtv
아니요, 스레드를 사용하는 것이 좋습니다. 배열에 액세스 할 때마다 @synchronize (retrievedArray) {}를 사용해야합니다. – Max
약간의 트릭을 제안 할 수 있습니다 : 메소드 정의 - (void) clearArray {@synchronized (retrieveArray) {[retrievedArray removeAllObjects]; }} 그리고 다른 하나, 즉 - (void) appendArray {// 여기에 데이터로 배열 채우기} NSLog를 배열의 크기를 출력 할 수있는 메소드에 넣으십시오. 그리고 변화하는시기를 알 수 있습니다. 트레드 ID를 인쇄 할 수도 있습니다. – Max