Хорошей практикой является использование запросов асинхронно.
Чтобы узнать, завершился или нет запрос, вы можете сделать это, просто согласовав свой класс с [ASIHTTPRequestDelegate][1]
.Он предоставляет вам множество методов для реализации для успешного, неудачного или перенаправленного запроса.
В данном случае вы ищете - (void)requestFinished:(ASIHTTPRequest *)request;
Вам нужно будет установить делегат запроса на текущийкласс вызова.
В зависимости от результата вашего текущего запроса, вы можете запустить другой запрос.Вы можете указать if-statement
, чтобы проверить URL-адрес и код ответа, и, соответственно, запустить свой следующий запрос.(Есть много других способов определить, когда можно вызвать следующий запрос. Но проще всего было бы прослушать результат первого запроса.)
Вот немного кода из проектов ASIHTTPRequestДокументация :
- (IBAction)grabURLInBackground:(id)sender
{
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
// Use when fetching binary data
NSData *responseData = [request responseData];
}
- (void)requestFailed:(ASIHTTPRequest *)request
{
NSError *error = [request error];
}
HTH