Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa NSDictionary Dictionary WithContentsOfURL超时?_Cocoa_Httpwebrequest_Timeout_Nsurl - Fatal编程技术网

Cocoa NSDictionary Dictionary WithContentsOfURL超时?

Cocoa NSDictionary Dictionary WithContentsOfURL超时?,cocoa,httpwebrequest,timeout,nsurl,Cocoa,Httpwebrequest,Timeout,Nsurl,我写了一个简单的代码从web服务器获取字符串值,现在我想设置超时,比如,10秒后执行getData,如果服务器10秒后没有响应,取消获取数据并执行“noConnect”。知道我该怎么做吗 -(void)getData { NSURL *url = [NSURL URLWithString: [NSString stringWithFormat: @"http://exaple.com/example.plist"]]; NSDictionary *data = [NSDictionary dic

我写了一个简单的代码从web服务器获取字符串值,现在我想设置超时,比如,10秒后执行getData,如果服务器10秒后没有响应,取消获取数据并执行“noConnect”。知道我该怎么做吗

-(void)getData {
NSURL *url = [NSURL URLWithString: [NSString stringWithFormat:
@"http://exaple.com/example.plist"]];
NSDictionary *data = [NSDictionary dictionaryWithContentsOfURL:url];
NSString *aKey  = [chamUpdateData objectForKey:@"count"];
}
-(void)noConnect{}

您可以使用…将对
字典的调用包装为一个,以便异步执行它;然后启动一个
NSTimer
,这样它就会启动,您可以检查
NSOperation
的状态;如果它仍在运行
,则取消它


请记住,我所知道的是,一旦您发送了网络请求,就无法真正停止它。因此,当连接需要更长的时间时,您只需要有一个超时来管理案例。如果响应在1分钟内到达,您只需忽略该数据。

创建一个10秒的NSTimer并调用该函数,该函数将检查服务器是否没有响应,并相应地停止获取数据

NSTimer*定时器=[NSTimer scheduledTimerWithTimeInterval:10.0 目标:自选择器:@selector(stopGettingData)userInfo:nil 重复:否]

如果应用程序位于cocos2d中,则不能使用NSTimer。相反,计划一个间隔为1秒的函数,只需在该函数中增加一个计数,并检查该计数是否为10,如果计数为10,则调用stopGettingData函数