Iphone 如何设置30秒超时?NSURL

Iphone 如何设置30秒超时?NSURL,iphone,timeout,Iphone,Timeout,如何设置30秒超时?NSURL NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", [searchBar.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; NSError* error; NSString *locationString = [NSS

如何设置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];

从上一个问题开始


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


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

,当您从
NSURL
创建
时,使用
requestWithURL:cachePolicy:timeoutInterval:
以秒为单位指定超时间隔。例如:

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

当您从
NSURL
创建
NSURL请求时,请使用
requestWithURL:cachePolicy:timeoutInterval:
以秒为单位指定超时间隔。例如:

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

唯一的问题是,您无法获得使用
+stringWithContentsOfURL:usedEncoding:error:
进行编码的内置猜测,因此您必须自己进行。唯一的问题是,您无法获得使用
+stringWithContentsOfURL:usedEncoding:error:
进行编码的内置猜测,所以你必须自己动手。