JSON Webservice反复调用iphone sdk

时间:2011-09-22 12:37:11

标签: iphone json web-services for-loop nsmutablearray

我有两个webservices(JSON),一个在ViewDidLoad中调用,它返回一个值数组并加载到Array1中。我需要通过解析Array1的每个值来调用另一个Web服务。我试过这样的事情:

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 个答案:

答案 0 :(得分:1)

您尚未展示如何执行在循环中创建的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作为委托来异步调用请求,那么你将不得不在这里做一些棘手的工作,因为你对所有请求的所有响应都会进入同一个委托。这是可能的,但在这种情况下,您可能希望定义一个专用对象作为每个请求的代理......