相关疑难解决方法(0)

在iOS 6.0和iOS 6.0.1上调用[FBSession openActiveSessionWithPermissions ...]时从ACAccountStore抛出NSInvalidArgumentException

使用Facebook iOS SDK 3.1.1,我正在使用此调用执行登录 -

NSArray *permissions = [[NSArray alloc] initWithObjects: @"email", @"user_birthday", @"user_location", nil];

@try {
    return [FBSession openActiveSessionWithReadPermissions:permissions
                                              allowLoginUI:allowLoginUI
                                         completionHandler:^(FBSession *session,
                                                             FBSessionState state,
                                                             NSError *error) {
                                             [self sessionStateChanged:session
                                                                 state:state
                                                                 error:error];
                                         }];
}
@catch { ... }
Run Code Online (Sandbox Code Playgroud)

在极少数情况下,此方法会抛出NSInvalidArgumentException消息Access options are not permitted for this account type. The options argument must be nil.,这是抛出的[ACAccountStore requestAccessToAccountsWithType:options:completion:].

检查Apple的文档ACAccountStore,我看到该方法的评论:

"某些帐户类型(如Facebook)需要一个选项字典.如果没有为此类帐户类型提供选项字典,此方法将抛出NSInvalidArgumentException.相反,如果帐户类型不需要选项字典,则options参数必须为零."

除了Facebook之外,Apple要求这是零,但这种方法是从Facebook调用的,所以也许这是一个错误 - 无论是在Facebook还是在iOS 6.0/.1,但我在网上找不到关于这个问题的任何内容.

有任何想法吗?

facebook-ios-sdk ios6

11
推荐指数
1
解决办法
1955
查看次数

标签 统计

facebook-ios-sdk ×1

ios6 ×1