timeout stringwithcontentsofurl

时间:2010-06-12 00:50:17

标签: nsstring

我有对stringwithcontentsofurl的调用:

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

我怎样才能给出一个简单的超时? 我不想使用线程或操作队列(url的内容大约是100个字符),我只是不想在连接缓慢时等待太久。

2 个答案:

答案 0 :(得分:17)

这是我的看法:

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];

答案 1 :(得分:9)

在这种情况下,您最好使用NSURLConnection类方法+sendSynchronousRequest:returningResponse:error:;它将返回一个数据对象,您可以使用-initWithData:encoding:)初始化您的字符串。您可以使用NSURLRequest方法创建-initWithURL:cachePolicy:timeoutInterval:来指定超时,然后将该请求作为+sendSynchronousRequest:returningResponse:error:的第一个参数传递。