Мое приложение синхронизируется с сервером, аналогичным приложению Apple Mail. Хотя синхронизация происходит в фоновом потоке, поскольку он довольно сильно воздействует на базовые данные, я посчитал необходимым заблокировать взаимодействие с пользовательскими элементами управления во время синхронизации, чтобы какая-то другая операция не ударила по основным данным и не создала проблем.
Я поместил синхронизацию в View Will Appear, чтобы поддерживать постоянную синхронизацию телефона и сервера. Однако, с большими объемами данных, я замечаю, что синхронизация недопустимо длинная ... то есть она связывает поток на пять или десять секунд. Я попытался поместить его в viewdidload, чтобы он вызывался реже, но все еще раздражает ожидание, когда вы только что открыли приложение.
Я заметил, что Apple не синхронизирует почту сразу, а ждет несколько секунд, чтобы сначала не связывать приложение. Это дает вам иллюзию, вам не нужно ждать (хотя на самом деле вы обычно это делаете).
Мне интересно, есть ли место в жизненном цикле, которое было бы лучше синхронизировать, например viewdidappear, а также есть ли способ использовать задержку для запуска синхронизации через пять или десять секунд после того, как вы находитесь в представлении контроллер, когда он менее заметен.
Заранее спасибо за любые предложения.