0

검색 필드가있는 탐색 항목을 포함하는 "탐색 컨트롤러"와 "UITableViewController"로 구성된 응용 프로그램이 있습니다. 스토리 보드에서 검색 막대는 TableView 안에 있습니다.performSelectorInBackground 다음에 cellView를 다시로드하십시오.

주 스레드에서 직접 XML을 요청하면 매우 느리지 만 작동하지만 서버의 정보가 "reloadData"로 CellView에 표시됩니다. 그러나 "performSelectorOnBackground"를 사용하여 데이터를 가져 왔지만 검색 막대의 "취소"버튼을 클릭하여 방금 쿼리 한 결과를 표시해야합니다!

나는 이미 시도했다 : "[self.tableView performSelectorOnMainThread : @selector (reloadData) withObject : nil waitUntilDone : NO];" 그러나 그것을 바꾸지는 않습니다. 최악의 경우 "cellForRowAtIndexPath"에 "NSLog"를 입력하면 배열의 내용이 표시됩니다. 그리고 "searchBarCancelButtonClicked"는 완전히 비어 있습니다.

미안 영어가 모국어가 아니므로 10 억 시간을 주셔서 감사합니다!

편집 18/04/12 : 이제 TableCellView는 올바르게 비동기 적으로 채워지지만 문제가 있습니다. XML 요청이 준비되면 현재 뷰의 ViewController에서 볼 수 있습니다. 그러나 이전 결과를 내 tableViewCell에 "밀어 넣으려면"searchBox에 다른 문자를 입력해야합니다. 현재 내보기에서 나는 다른 스레드 (dispatch_async)에서 XML을 구문 분석하기 위해 다른 함수에 요청하고 한번 완료되면 "NSNotification"을 보내어 현재보기가 양식을 채우는 데 사용되는 NSMutableArray를 초기화하도록 다른 클래스를 호출합니다. 누군가 그것을 속이는 방법에 대한 아이디어가 있습니까? 10 억 시간 감사드립니다!

답변

0

[tableview reloadData];라는 데이터 구문 분석을 완료 한 후. 업데이트 된 데이터로 데이터를 채 웁니다.

+0

안녕하세요! 대답 주셔서 감사하지만 상황이 변경되었습니다. 이제 TableViewCell이 채워지지만 가벼운 문제가 있습니다. 내 게시물은 updata입니다. 고마워 ;) – Charles33

관련 문제