0

iPhone アプリから Facebook ウォールに写真を送信したい:

for (int i=0; i<_pageImages.count; i++) {   
    UIImage *img = [self.pageImages objectAtIndex:i];
    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
    [params setObject:@"my custom message" forKey:@"message"];
    [params setObject:img forKey:@"picture"];

    [self performPublishAction:^{
        [FBRequestConnection startWithGraphPath:@"me/photos" parameters:params HTTPMethod:@"POST"
            completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                [self showAlert:@"Photo med text Post" result:result error:error];
        }];
    }];
}

コードは完全に機能しますが、コードでわかるように、Alert'll が表示されます_pageImages.count。私はそれを簡単に取り除くことができます。

写真のリストを投稿する方が良い方法だと思います。私たちを手伝ってくれますか?

4

1 に答える 1

0

アラートを1回だけ表示する場合は、アップロードする画像のグローバルカウントを初期化し、showAlert:result:errorメソッドを呼び出す代わりに、新しいメソッドを呼び出すことができます。新しいメソッドは結果を処理し、処理された画像のローカルカウントをインクリメントします。ローカルカウントがグローバルカウントに達すると、アラートを表示できます。

リクエストのバッチ処理についても考えることができます。https: //developers.facebook.com/docs/howtos/batch-requests-ios-sdk/を参照してください。

ループロジックを次のように変更できます。

// Before the loop
FBRequestConnection *connection = [[FBRequestConnection alloc] init];

// Loop through images, set up the request
for (int i=0; i<_pageImages.count; i++) { 
    ....
    FBRequest *request = [FBRequest requestWithGraphPath:@"me/photos"
                     parameters:params
                     HTTPMethod:@"POST"];
    [connection addRequest:request
         completionHandler:
             ^(FBRequestConnection *connection, id result, NSError *error) {
                 // Call your method to check results and keep count
                 // of the callbacks before displaying the final output
    }];
}

// After the loop
[connection start];
于 2012-10-31T16:38:39.597 に答える