Вы заметите, что viewDidLoad
метод документация из UIViewController
сообщает:
... Вызывается после загрузки представления контроллера в память.
Это не обязательно означает, что он вызывается после того, как представление отображается на экране.
Чтобы ответить на другие ваши вопросы, если вы отправляете запрос по сети, как вы описали, нет, анимациине будет продолжать играть, пока идет запрос, и нет, вы не можете гарантировать, что пользовательский интерфейс будет отзывчивым.Это связано с тем, что сетевой запрос займет неизвестное количество времени.Поэтому, если вы сделаете запрос в основном потоке, основной поток будет заблокирован на этот период времени, сколько бы времени это ни заняло.
И, что касается последнего вопроса, - это многопоточностьидти? Как уже говорили другие, самый простой и, вероятно, самый популярный способ справиться с этим - инициализировать NSURLConnection
с initWithRequest:delegate:
.Делегатом является ваш класс UIViewController
или Connect
или любой другой класс, который вы хотите соответствовать протоколу NSURLConnectionDelegate
и использовать методы NSURLConnectionDelegate
для обработки загруженных данных.NSURLConnection
выполнит работу асинхронно и освободит основной поток для обработки анимаций, отображения пользовательского интерфейса и т. Д.