Это замораживает ваше приложение, потому что вы сказали это. Вы сразу передали ДА в начало. Это означает, что он установит соединение в этом потоке и будет ждать его завершения. Я предполагаю, что поток, над которым вы это делаете, будет основным потоком, который также обрабатывает пользовательский интерфейс и т.д .:)
Вам нужно использовать что-то вроде connectionWithRequest:delegate:
- это запустит запрос в фоновом режиме и сообщит вам, когда это будет сделано.
PS Причина, по которой вы не обнаружили ошибку в Wi-Fi, заключается в том, что данные были отправлены так быстро, что вы не заметили паузу в своем приложении:)
PPS Причина, по которой тайм-аут не устранил его, заключается в том, что время запроса не истекло - он просто получал данные очень медленно:)
EDIT
Примерно так:
self.web = [NSURLConnection connectionWithRequest:request delegate:self];