Web サービスからデータを取得するための 5 つの HTML リクエストがあります。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
すべての応答には多くのデータがあり、応答データを配列に保存していますが、最初の応答を待って別の要求を行っていません。最後に for ループが終了し、次のビューが読み込まれますが、配列へのデータのコピーが完了していないために解析がまだ行われていないため、エラーが発生して配列が埋められません。
メソッドで試しまし
sleep(5);
た-(void)parserDidEndDocument:(NSXMLParser *)parser
が、応答時間がネットワーク トラフィックに依存するため、有効ではありません。何をすべきか理解できません助けてください。次の回答も試しましたが、理解できませんコードが実行を終了するのを待ちます