1 Answer
1

NSData *jsonData = [NSData dataWithContentsOfURL:url]; is a synchronous call.
It means that the call is done in the main thread and it will block the execution during its process. If the connection is slow, it will block the interface (which runs in the main thread as well) until it receives datas.

In order to avoid blocking your interface while dataWithContentOfURL finish, you should use gcd or implement an asynchronous class to fetch the data.