JSON Webservice повторно вызывает iphone SDK - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть два веб-сервиса (JSON), один из которых вызывается в ViewDidLoad и возвращает массив значений и загружается в Array1. И мне нужно вызвать другой веб-сервис, анализируя каждое значение Array1. Я пробовал что-то вроде этого:

for (pointer=0; pointer<=[Array1 count]; pointer++) {
    NSString *test = [Array1 objectAtIndex:pointer];
    NSString *urlString2 = [NSString stringWithFormat:@"http://service=%@",test];
    NSURLRequest *request2 = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString2]];
    connection2 = [[NSURLConnection alloc] initWithRequest:request2 delegate:self]; 
}

Как вызвать эту функцию для загрузки вывода в массив? Помощь будет высоко ценится .. Спасибо

1 Ответ

1 голос
/ 22 сентября 2011

Вы не показали, как вы выполняете запросы NSURLRequests, которые вы создали в вашем цикле.Если вы пытаетесь вызвать их синхронно, вы можете сделать что-то вроде:

NSMutableArray *result = [[NSMutableArray alloc] init];
for (pointer=0; pointer<=[Array1 count]; pointer++) {
    NSString *test = [Array1 objectAtIndex:pointer];
    NSString *urlString2 = [NSString stringWithFormat:@"http://service=%@",test];
    NSURLRequest *request2 = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString2]];
    NSURLResponse *response = nil;
    NSError *error = nil;
    NSData *currentResult = [NSURLConnection sendSynchronousRequest:request2 returningResponse:&response error:&error];
    [result addObject:currentResult];
}
return result;

Если вместо этого вы пытаетесь вызвать запрос асинхронно, используя self в качестве делегата, то вам придется выполнить более хитрую работуздесь, потому что все ваши ответы на все ваши запросы поступят одному и тому же делегату.Это возможно, но вы можете определить выделенные объекты, которые будут действовать как делегаты для каждого отдельного запроса в этом случае ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...