2011-01-11 8 views
8

Próbuję odłączyć lub zatrzymać ładowanie żądania adresu URL w ciągu 15 sekund, gdy połączenie internetowe zostanie rozłączone. Próbowałem z setTimeoutInterval w NSURLRequest, który nie działa. Czy ktoś wie, jak rozwiązać problem?Jak ustawić limit czasu w NSURLRequest w iphone

Odpowiedz

14

Oto przykład dla Ciebie:

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

Tu masz 20 sec limit czasu.

+0

Próbowałem timeoutInterval: 20.0, ale to nie działa dla mnie. czy cokolwiek trzeba zrobić? – sri

+0

Po prostu pokaż trochę kodu. –

+6

timeoutInterval jest ignorowany i ustawiony na 240s, jeśli wywołanie jest żądaniem POST. Zobacz: https://devforums.apple.com/message/108087#108087 – Raptor

2

Z tego, czego doświadczyłem, ten przykład z Olega nie zadziała. Wydaje mi się, że stoisz wobec tego samego problemu co ja i z tego, co przeczytałem w Internecie, może to rozwiązanie zadziała również dla Ciebie.

Korzystanie NSTimer ustawić timer zaczynają się metodą webViewDidStartLoad delegata, a następnie upewnij się, że masz liczniki na metodach webViewDidFinishLoad i webViewDidStarLoad aby sprawdzić, czy Webview został załadowany (jest to brzydki hack, ale chyba użyj javascript do sprawdzenia liczby elementów na twojej stronie, tak naprawdę nie ma sposobu, aby się dowiedzieć, ile razy te 2 metody będą wywoływane).

Po wykonaniu tej czynności, sprawdź liczniki w metodzie, którą uruchamiasz po upływie czasu, i która powinna zadziałać.

szyfrowego NSTimer jest tutaj ->http://www.iphonedevsdk.com/forum/iphone-sdk-development/14403-nstimer-examples.html

Nadzieja to pomaga, to nie dla mnie. Chociaż wiem, że są wady, działa to dla mnie, ponieważ ładuję ekran powitalny, który ma być w pierwszej kolejności lekki. Wciąż szukam rozwiązań, ale tutaj będę publikował poprawki, jeśli będę miał inne możliwości.

Informacje zwrotne są bardzo mile widziane!