我有多种方法,每种方法都有嵌套循环和 facebook 请求。有一个 X id 的数组,每个方法循环遍历每个 id,对该 id 发出请求,然后对结果数据进行处理。
当每个方法完成时,我需要得到通知......即,当方法完成遍历数组中的所有 id 时,为每个方法发出 facebook 请求,接收结果并使用结果数据完成其任务。我似乎无法弄清楚如何做到这一点。以下是这些方法的示例:
- (void)runLoopForFacebookFriendsContent1 {
for (NSString *fbIdStr in self.fbIdsArr){
FBRequest *fbRequest = [FBRequest requestWithGraphPath:graphPathString parameters:nil HTTPMethod:@"GET"];
[fbRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (error) {
//show alert
} else {
//Do stuff with the resulting data
}
}];
}
}
- (void)runLoopForFacebookFriendsContent2 {
for (NSString *fbIdStr in self.fbIdsArr){
FBRequest *fbRequest2 = [FBRequest requestWithGraphPath:graphPathStringNumber2 parameters:nil HTTPMethod:@"GET"];
[fbRequest2 startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (error) {
//show alert
} else {
for (PF_FBGraphObject *obj in [result objectForKey:@"data"]){
NSLog(@"facebook result: %@",result);
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setValue:@"type2" forKey:@"ContentType"];
[dict setValue:obj forKey:@"data"];
[self.theFacebookDataArray addObject:dict];
}
}
}];
}
}
我在 viewWillAppear 中调用这些方法。有没有办法设置某种完成处理程序来调用这些方法?然后在它们都完成后发布一个 NSNotification ?