Тайм-аут stringwithcontentsofurl
У меня есть этот вызов для stringwithcontentsofurl:
[NSString stringWithContentsOfURL:url usedEncoding:nil error:nil];
Как я могу дать простой тайм-аут?
Я не хочу использовать потоки или рабочие очереди (содержание URL-адреса составляет около 100 символов), я просто не хочу слишком долго ждать, когда соединение происходит медленно.
Ответы
Ответ 1
В этом случае вам может быть лучше использовать метод класса NSURLConnection
+sendSynchronousRequest:returningResponse:error:
; он вернет объект данных, который вы можете инициализировать своей строкой (используя -initWithData:encoding:
). Вы можете указать тайм-аут, создав NSURLRequest
с помощью метода -initWithURL:cachePolicy:timeoutInterval:
, затем передайте этот запрос в качестве первого параметра +sendSynchronousRequest:returningResponse:error:
.
Ответ 2
Вот мой пример:
NSString* link = @"http://example.com";
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:link] cachePolicy:0 timeoutInterval:5];
NSURLResponse* response=nil;
NSError* error=nil;
NSData* data=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString* stringFromServer = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];