How to Make Web Service Call Without Making the GUI Unresponsive
<p>I have a <code>UISearchBar</code> and <code>UISearchDisplayController</code>. When the user writes text in it inside  <code>searchBar:textDidChange:</code> I make a web-service call to filter my TableView. The problem is that the GUI get unresponsive until I get the result from the web-service. I've tried to solve it using <code>[self performSelector:@selector(callWebService:) withObject:searchText];</code>, but it's still unresponsive. </p>

<p>EDIT: Following Flink advice, I changed <code>performSelector</code> to <code>performSelectorInBackground</code>, but now the tableView doesn't filter correctly, it only show 'No Results'.
even <code>tableView:numberOfRowsInSection:</code> isn't get called.</p>

<p>EDIT Again: The reason I got 'No Results' was due to not calling <code>reloadData</code> on the correct tableView. <code>UISearchDisplayController</code> has a property named <code>searchResultsTableView</code>. So in the end what I used was <code>[self.searchDisplayController.searchResultsTableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:false];</code> and now it works fine.</p>

<p>It should be noted that although I chose the <code>performSelectorInBackground</code>, I probably should have tried to use <code>sendAsynchronousRequest</code> method on <code>NSURLConnection</code> - See AliSoftware's answer.</p>
