строка времени ожидания с содержимым - PullRequest
10 голосов
/ 12 июня 2010

У меня есть этот вызов stringwithcontentsofurl:

[NSString stringWithContentsOfURL:url usedEncoding:nil  error:nil];

Как я могу дать это простой тайм-аут?Я не хочу использовать потоки или очереди операций (содержание URL составляет около 100 символов), я просто не хочу ждать слишком долго, когда соединение медленное.

Ответы [ 2 ]

17 голосов
/ 29 ноября 2011

Вот мое мнение:

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];
9 голосов
/ 12 июня 2010

В этом случае лучше всего использовать метод класса NSURLConnection +sendSynchronousRequest:returningResponse:error:; он вернет объект данных, с которым вы можете инициализировать вашу строку (используя -initWithData:encoding:). Вы можете указать время ожидания, создав NSURLRequest с использованием его метода -initWithURL:cachePolicy:timeoutInterval:, а затем передать этот запрос в качестве первого параметра +sendSynchronousRequest:returningResponse:error:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...