我有這樣的呼籲stringwithcontentsofurl:超時stringwithcontentsofurl
[NSString stringWithContentsOfURL:url usedEncoding:nil error:nil];
我怎麼能做一個簡單的超時? 我不想使用線程或操作隊列(url的內容大約爲100個字符),我只是不想在連接速度慢時等待太久。
我有這樣的呼籲stringwithcontentsofurl:超時stringwithcontentsofurl
[NSString stringWithContentsOfURL:url usedEncoding:nil error:nil];
我怎麼能做一個簡單的超時? 我不想使用線程或操作隊列(url的內容大約爲100個字符),我只是不想在連接速度慢時等待太久。
在這種情況下,您最好使用NSURLConnection
類方法+sendSynchronousRequest:returningResponse:error:
;它會返回一個數據對象,您可以初始化您的字符串(使用-initWithData:encoding:
)。您可以通過使用-initWithURL:cachePolicy:timeoutInterval:
方法創建NSURLRequest
來指定超時,然後將該請求作爲+sendSynchronousRequest:returningResponse:error:
的第一個參數傳遞。
這裏有一個關於它我採取:
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];
太棒了!工程100% – 2013-01-21 10:09:13
偉大的!,那只是因爲我想象它!謝謝! – sergiobuj 2010-06-13 02:50:42
這個問題的唯一問題是你沒有得到'+ stringWithContentsOfURL:usedEncoding:error:'做的編碼的內建猜測,所以你必須推出自己的編碼。 – 2014-05-14 17:13:43