2012-10-29 2 views
0

Я хочу написать несколько фотографий из моего iPhone App моей Facebook стены:Сообщение Фотоальбом на временной шкале с помощью Facebook IOS SDK

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 время. Я могу легко удалить это.

Я думаю, что это может быть лучший способ опубликовать список фотографий. не могли бы вы помочь мне?

ответ

0

Если вы намерены показывать только одно предупреждение, вы можете инициализировать глобальный счет загружаемых изображений и вместо вызова метода 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]; 
+0

я ценю за вашу помощь. скоро я проверю и ответю. – Ali

Смежные вопросы