-2
我有兩個請求(A & B)JSONParser類。 B取決於A的響應。這兩個請求都返回JSON響應。使用這兩個響應將創建一個對象C,然後我想將C返回給視圖控制器。兩個依賴的異步請求iOS
我有兩個請求(A & B)JSONParser類。 B取決於A的響應。這兩個請求都返回JSON響應。使用這兩個響應將創建一個對象C,然後我想將C返回給視圖控制器。兩個依賴的異步請求iOS
這是我的例子。這是非常初步的,但你可以弄清楚如何.... 你也需要添加錯誤檢查。
typedef void(^ResultBlock)(id data);
- (NSDictionary *)dataFromURL:(NSString *)url {
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
NSURLResponse *response;
NSError *error;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSDictionary* document = [NSJSONSerialization
JSONObjectWithData:responseData //1
options:kNilOptions
error:&error];
return document;
}
- (void)getSomeDataWithCompletion:(ResultBlock)completion {
NSOperationQueue *q = [[NSOperationQueue alloc] init];
[q addOperation:[NSBlockOperation blockOperationWithBlock:^{
NSDictionary *response1 = [self dataFromURL:@"server/api1"];
id result = nil;
if (response1) {
NSDictionary *response2 = [self dataFromURL:[NSString stringWithFormat:@"%@/%@", @"server/api2", [response1 objectForKey:@"someParameter"]]];
result = [response2 objectForKey:@"iFindThisObject"];
}
completion(result);
}]];
}
- (void)performRequest {
[self getSomeDataWithCompletion:^(id data) {
NSLog(@"Result %@", data);
}];
}
我沒有承諾阻止,但這是我所嘗試過的: – Manpreet
[你有什麼嘗試?](http://whathaveyoutried.com/) – rckoenes
你需要指定你實際要求的。這很簡單,所以你有哪些問題? 我建議你發佈你的代碼,以及你遇到問題的地方。 –