使用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,但我在网上找不到关于这个问题的任何内容.
有任何想法吗?