使用 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 { ... }
在极少数情况下,此方法会抛出NSInvalidArgumentException
消息Access options are not permitted for this account type. The options argument must be nil.
,这是从 中抛出的[ACAccountStore requestAccessToAccountsWithType:options:completion:]
。
检查 Apple 的文档ACAccountStore
,我看到了该方法的评论:
“某些帐户类型(例如 Facebook)需要选项字典。如果未为此类帐户类型提供选项字典,则此方法将抛出 NSInvalidArgumentException。相反,如果帐户类型不需要选项字典,则选项参数必须为零。”
除了 Facebook,Apple 要求它为零,但这个方法是从 Facebook 调用的,所以也许这是一个错误 - 无论是在 Facebook 还是在 iOS 6.0/.1,但我在网上找不到任何关于这个问题的信息。
有任何想法吗?