You're loading the data synchronous on the mainthread which is bad and blocking the interface. Try loading your JSON data with NSURLConnection and reload your UITableView in the
(void)connectionDidFinishLoading:(NSURLConnection *)aConnection
method when you're done processing it.