FBFriendPickerViewController периодически загружает пустую таблицу

Я использую FBFriendPickerViewController для загрузки друзей после входа пользователя в систему. Однако загружается пустое табличное представление. Друзья пользователя из фб не отображаются. Вот код.

- (IBAction)inviteButtonTouchHandler:(id)sender {
        if (!_friendPickerController) {
            _friendPickerController = [[FBFriendPickerViewController alloc] initWithNibName:nil bundle:nil];
            _friendPickerController.delegate = self;
            _friendPickerController.title = @"Select friends";
            _friendPickerController.allowsMultipleSelection = NO;
        }
        [_friendPickerController clearSelection];
        [_friendPickerController loadData];
        [self presentViewController:_friendPickerController animated:YES completion:nil];
  }  

Этот код вызывается после входа в систему, который делается следующим образом в appDelegate в соответствии с руководством по Facebook:

- (void)openSession
{
    NSArray *permissions = @[@"friends_about_me"];
    [FBSession openActiveSessionWithReadPermissions:permissions
                                       allowLoginUI:YES
                                  completionHandler:
     ^(FBSession *session,
       FBSessionState state, NSError *error) {
         [self sessionStateChanged:session state:state error:error];
     }];
}

person Dev    schedule 07.02.2013    source источник


Ответы (1)


Вам нужно добавить следующий код в метод viewDidLoad вашего viewController.

if (!FBSession.activeSession.isOpen) {
    // if the session is closed, then we open it here, and establish a handler for state changes
    [FBSession.activeSession openWithCompletionHandler:^(FBSession *session,
                                                         FBSessionState state,
                                                         NSError *error) {
        switch (state) {
            case FBSessionStateClosedLoginFailed:
            {
                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
                                                                    message:error.localizedDescription
                                                                   delegate:nil
                                                          cancelButtonTitle:@"OK"
                                                          otherButtonTitles:nil];
                [alertView show];
            }
                break;
            default:
                break;
        }
    }];
}
person iPhoneDev    schedule 07.03.2013