我有两个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];
}
如何调用此函数将输出加载到数组中? 将非常感谢帮助.. 谢谢
答案 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作为委托来异步调用请求,那么你将不得不在这里做一些棘手的工作,因为你对所有请求的所有响应都会进入同一个委托。这是可能的,但在这种情况下,您可能希望定义一个专用对象作为每个请求的代理......