と がUISearchBar
ありUISearchDisplayController
ます。ユーザーが内部にテキストを書き込むと searchBar:textDidChange:
、Web サービス呼び出しを行って TableView をフィルター処理します。問題は、Web サービスから結果を取得するまで GUI が応答しなくなることです。を使用して解決しようとしました[self performSelector:@selector(callWebService:) withObject:searchText];
が、まだ応答しません。
編集: Flink のアドバイスに従って、 に変更performSelector
しましperformSelectorInBackground
たが、tableView が正しくフィルター処理されず、「結果なし」のみが表示されます。もtableView:numberOfRowsInSection:
呼び出されません。
再度編集:「結果がありません」と表示された理由はreloadData
、正しい tableView を呼び出していないためです。UISearchDisplayController
という名前のプロパティがありますsearchResultsTableView
。結局、私が使用したのは[self.searchDisplayController.searchResultsTableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:false];
、今では正常に動作します。
performSelectorInBackground
を選択しましたが、おそらくsendAsynchronousRequest
on メソッドを使用する必要があったことに注意してNSURLConnection
ください-AliSoftwareの回答を参照してください。