Синхронный означает, что вы запускаете запрос NSURLConnection
и ждете его выполнения.
Асинхронный означает, что вы можете инициировать запрос и выполнять другие действия, пока NSURLConnection
загружает данные.
Что является "лучшим"?
Синхронность очень проста: вы настраиваете ее, запускаете и ждете возвращения данных. Но ваше приложение находится там и ничего не делает, пока все данные не будут загружены, не произойдет какая-либо ошибка или не истечет время ожидания запроса. Если вы имеете дело с чем-то большим, чем небольшой объем данных, ваш пользователь будет сидеть там в ожидании, что не принесет хорошего впечатления пользователю.
Асинхронный требует немного больше работы, но ваш пользователь может делать другие вещи, пока запрос делает свое дело, что обычно предпочтительнее. Вы настроили некоторые методы делегатов, которые позволяют отслеживать данные по мере их поступления, что полезно для отслеживания хода загрузки. Этот подход, вероятно, лучше для большинства случаев использования.
Вы можете выполнять как синхронные, так и асинхронные запросы с помощью NSURLConnection
. Документация Apple содержит четкое объяснение двух подходов и методов делегирования, необходимых для последнего подхода.