Время ожидания NSURLConnection?

Я использую это NSURLConnection с делегатами.

nsconnection = [[NSURLConnection alloc] initWithRequest:request
    delegate:self startImmediately:YES];

Проблема заключается в том, что веб-сайт не отвечает вообще. Ничего, просто вращается в браузере с пустой страницей, без сбоев. В моих делегатах я обрабатываю сбой, но когда сайт не отвечает, делегаты не вызываются. Любые идеи о том, как отключить соединение?

Ответ 1

Вы можете указать тайм-аут в своем NSURLRequest объекте. Один из способов сделать это - построить его с помощью метода requestWithURL:cachePolicy:timeoutInterval:. (Вы можете передать параметр NSURLRequestUseProtocolCachePolicy cachePolicy по умолчанию, если вы не хотите беспокоиться об этой части.) Тайм-аут - это значение с плавающей запятой в секундах, в основном это все временные интервалы в iPhone SDK.

Также убедитесь, что ваш делегат NSURLConnection установлен и отвечает на connection:didFailWithError:. Соединение всегда вызывает этот метод или connectionDidFinishLoading: после завершения соединения.

Ответ 2

Изменить: Этот ответ устарел, но на дату ответа был точным.

Я знаю, что эта ветка устарела, но я столкнулся с этой проблемой. Это произошло при тестировании приложения за пределами внутренней сети, где работали службы. Служба в конечном итоге отключится, но Apple назначит период в 240 секунд (4 минуты) до истечения тайм-аута. Посмотрите эту тему для получения дополнительной информации по этому вопросу.

NSMutableURLRequest не подчиняется моему timeoutInterval