У меня странная проблема с NSURLConnection. Я установил время соединения из 20 секунд, как это.
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0];
NSURLConnection *con= [[NSURLConnection alloc] initWithRequest:request delegate:self];
Я также реализую методы делегата для NSURLConnection.
Теперь, когда я запустил приложение, соединение не истекло через 20 секунд, но через 2-3 минуты выдает ошибку «Нет подключения к интернету». Разве он не должен выдать ошибку тайм-аута через 20 секунд?
В обсуждении timeoutInterval говорится, что он запускается (установлен в 0), когда происходит процесс загрузки:
Интервал тайм-аута определяет лимит на холостом ходу интервал, отведенный запросу в процессе загрузки. «холостой интервал» определяется как период времени, прошедший с момента последний экземпляр активности загрузки произошел для запроса, который находится в процесс загрузки. Следовательно, когда происходит экземпляр нагрузки (например, байты получены из сети для запроса), интервал для запроса сбрасывается на 0. Если интервал простоя когда-либо становится больше или равно интервалу тайм-аута, запрос считается истекшим. Этот интервал времени ожидания измеряется в секундах.
Отсутствие подключения к Интернету является ошибкой. Так что, вероятно, тайм-аут на самом деле произойдет через 20 секунд (установленное время), если он получит соединение, но для загрузки потребуется больше времени...