我有 5 个 html 请求从 Web 服务获取数据。我在 for 循环中请求。
-(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];
HUD.labelText=@"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
方法,但它无效,因为响应时间取决于网络流量。我不明白该怎么做请帮忙。我也尝试了以下答案,但无法理解等待代码完成执行