複数のメソッドがあり、それぞれにネストされたループと 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 を投稿しますか?