我有一个启用 Facebook 登录的应用程序,由于某种原因FBSDKLoginManager logInWithReadPermissions: fromViewController: handler:,安装后第一次运行我的应用程序时没有调用它。如果我只是杀死我的应用程序(即使没有尝试登录 Facebook 或做任何事情:尝试在第一次打开时登录或不尝试登录不会改变任何东西)并再次打开它,它会完美运行。
为什么?
(我已经检查过传递给该方法的视图控制器不是 nil 并且是当前视图控制器)
这是我的登录代码:
+(void)loginWithFacebookWithCompletion:(ULCompletion)completion{
[[[FBSDKLoginManager alloc] init] logInWithReadPermissions:FACEBOOK_READ_PERMISSIONS fromViewController:[ULMasterViewController instance] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if(result.token){
...
}
[...]
其余的无关紧要,因为根本不调用完成块(即使有错误也没有)。我有FACEBOOK_READ_PERMISSIONS硬编码:
#define FACEBOOK_READ_PERMISSIONS (@[@"user_friends", @"user_birthday", @"email", @"user_photos"])
最后,[ULMasterViewController instance]是有效的(不是零,并且在层次结构中有它的视图(否则它会抱怨视图不在层次结构中,也尝试过))。