2011-04-20 136 views
1

如何設置30秒超時? NSURL如何設置30秒超時? NSURL

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", [searchBar.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
NSError* error; 
NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString] encoding:NSASCIIStringEncoding error:&error]; 

回答

4

從這個以前SO質疑timeout stringwithcontentsofurl

在這種情況下,你可能是最好的時候使用NSURLConnection類方法+sendSynchronousRequest:returningResponse:error:;它會返回一個數據對象,你可以使用(使用-initWithData:encoding:)初始化您的字符串。您可以通過使用-initWithURL:cachePolicy:timeoutInterval:方法創建NSURLRequest來指定超時,然後將該請求作爲+sendSynchronousRequest:returningResponse:error:的第一個參數傳遞。

+0

這個唯一的問題是,你沒有得到內置的,你用'+ stringWithContentsOfURL做編碼的猜測:usedEncoding:錯誤:',所以你必須要滾你擁有。 – 2014-05-14 18:04:45

3

當您從NSURL創建NSURLRequest時,請使用requestWithURL:cachePolicy:timeoutInterval:指定以秒爲單位的超時間隔。例如:

NSURLRequest* request = [NSURLRequest requestWithURL: myUrl 
    cachePolicy: NSURLRequestReloadIgnoringCacheData 
    timeoutInterval:30.0];