我有5个HTML请求从Web服务获取数据。我正在请求for循环。如何等待xml解析的多个请求的响应?
-(void)loadPreviewsData
{
NSMutableURLRequest *request;
for (int i=1; i<=5; i++)
{
if(i==1)
{
//request 1
}
if(i==2)
{
//request 2
}
//3 to 5
request.HTTPMethod = @"POST";
NSURLConnection *myConnection=[[NSURLConnection alloc] initWithRequest:request delegate:self];
if(myConnection)
{
HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
[email protected]"Please wait.";
myData = [[NSMutableData alloc] initWithLength:0];
}
else
{
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Message" message:@"Connection could not be established!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
}
}// end for loop
}//end loadPreview
所有响应具有大量的数据,我响应数据保存到数组,但它不是等待第一个响应,使另一个请求。 finally for循环将完成,下一个视图将加载,但数组未完成,因为解析尚未完成,因为数据复制到数组中没有完成,因此出现错误。
我试图
sleep(5);
在-(void)parserDidEndDocument:(NSXMLParser *)parser
方法,但它是无效的,因为响应时间取决于网络流量。我不明白该怎么做,请帮忙。我也试过以下的答案,但无法理解Wait for code to finish execution
你试过在启动for循环之前添加等待视图,并在for循环结束后删除..? – vishy
我不知道如何等待完成解析只试过睡觉(3);但它会等待特定的时间,而不会等待观看。如何实现它? –
主要问题是为什么您使用回调的地方数据没有准备好作为数据准备好的回调。当最后一次调用请求完成时(但不能保证它是作为最后一次被提取和解析)而不是检查所有请求是否完成时,试图显示视图?请注意,您链接的解决方案是专门为后台线程设计的,因为它会阻塞线程,但它的性能也不是很好。 –