Проблема в том, что -[NSURLConnection sendSynchronousRequest:]
блокируется, пока не будет всех данных.
Лучший способ исправить это - реализовать асинхронный запрос (см. Справку NSURLConnection
о том, как это сделать).
Вы также можете установить синхронное соединение в фоновом потоке, как предложил Макс, хотя я бы предложил использовать performSelectorInBackground:
вместо того, чтобы создавать поток вручную. В любом случае, не забудьте сначала установить NSAutoreleasePool в новом потоке, чтобы избежать утечек, а также помните, что вызов методов GUI (например, установка текста UILabel) должен выполняться в основном потоке, например, с использованием performSelectorOnMainThread:withObject:waitUntilDone:
. Как видите, в многопоточной версии есть некоторые подводные камни, поэтому я действительно предлагаю реализовать асинхронное соединение.