Если ваш метод getDataForTableView () выполняет запрос к серверу, в главном потоке весь пользовательский интерфейс будет зависать до тех пор, пока запрос не вернется.Если это синхронный запрос.Если он асинхронный, но ваше приложение все еще ожидает перезагрузки данных, оно не будет зависать от пользовательского интерфейса, но интерфейс просто будет ждать чего-то.
Я бы сделал запрос на другомнить или используя NSInvocationOperation, и пусть он отправит уведомление / обратный вызов при возврате запроса.Просто убедитесь, что обработчик уведомлений выполняет все / все разговоры с объектами UIKit с помощью executeSelectorOnMainThread.Apple диктует, что весь код UIKit должен выполняться в главном потоке, и, хотя отправка сообщений объектам UIKit в других потоках не обязательно приведет к сбою вашего приложения или вызову предупреждения компилятора, это приведет к очень непредсказуемому поведению (а также, возможно, сбоям).
С точки зрения пользовательского интерфейса, если вы должны выполнять запрос только в тот момент, когда отображается представление таблицы (по какой-то уважительной причине), убедитесь, что отображается индикатор активности "загрузка"(См. UIActivityIndicatorView) или что-то подобное.
В идеале, однако, вы должны загрузить данные и кэшировать их в фоновом режиме, прежде чем таблица будет показана.И периодически проверяйте его на предмет устаревания и получайте более свежие данные с сервера при необходимости.Подумайте, как foursquare или Path делают это с данными места в своих приложениях.