Не используйте dataWithContentsOfURL:
, если вы не выполняете его где-то кроме основного потока.Это блокирующий API и доступ к сети.Это рецепт плохого взаимодействия с пользователем.
Подумайте об этом: вы используете блокирующий API для доступа к сети, но сеть не работает или работает очень медленно.Основной поток теперь заблокирован, поэтому ваш пользовательский интерфейс не отвечает на взаимодействие с пользователем.Пользователь расстроен и пытается отменить загрузку, используя удобную кнопку, которую вы положили на пользовательский интерфейс, но "О НЕТ!"он не работает, потому что пользовательский интерфейс заблокирован.
Не используйте API блокировки в главном потоке.
Вы должны ознакомиться с документацией для NSURLConnection
и ее асинхронными методами загрузки для загрузкиданные.