2011-01-11 3 views
8

Я пытаюсь отключить или прекратить загрузку запроса URL-адреса через 15 секунд, когда подключение к Интернету отключится. Я пытался с setTimeoutInterval в NSURLRequest, который не работает. может ли кто-нибудь знать, как решить проблему?Как установить тайм-аут в NSURLRequest в iphone

ответ

14

Вот вам пример:

NSURLRequest *lRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:link]   
       cachePolicy:NSURLRequestUseProtocolCachePolicy 
       timeoutInterval:20.0]; 

Здесь есть таймаут на 20 сек.

+0

Я пробовал тайм-аутInterval: 20.0, но он не работает для меня. что-то нужно сделать? – sri

+0

Просто покажите часть своего кода. –

+6

timeoutInterval игнорируется и устанавливается на 240 секунд, если вызов является POST-запросом. См. Https://devforums.apple.com/message/108087#108087 – Raptor

2

Из того, что я испытал, этот пример от Олега не будет работать. Я думаю, вы столкнулись с той же проблемой, что и я, и из того, что я читал в Интернете, возможно, это решение тоже сработает для вас.

Используя NSTimer, установите таймер, чтобы начать с метода делегата webViewDidStartLoad, а затем убедитесь, что у вас есть счетчики в методах webViewDidFinishLoad и webViewDidStarLoad, чтобы проверить, загружен ли webView (это уродливый взлом, но если вы не используете используйте javascript для проверки количества элементов на вашей странице, не существует способа узнать, сколько раз будут вызываться эти 2 метода).

После этого выполните проверку счетчиков по методу, который вы используете после того, как таймер достиг своего времени, и это должно сработать.

NSTimer код здесь ->http://www.iphonedevsdk.com/forum/iphone-sdk-development/14403-nstimer-examples.html

Надеется, что это помогает, он сделал для меня. Хотя я знаю, что есть недостатки, это работает для меня, поскольку я загружаю экран заставки, который должен быть легким в первую очередь. Я все еще ищу решения, но буду публиковать изменения здесь, если у меня есть другие альтернативы.

Отзыв очень приветствуется!

Смежные вопросы