FBSDKLoginManager注销并登录管理

时间:2016-10-06 17:45:01

标签: ios objective-c fbsdk fbsdkloginkit

我正在尝试使用FB SDK登录。但是,偶尔会有用户已经登录。以下是我用于首先注销的代码。

FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];

[loginManager logOut];
[loginManager logInWithReadPermissions:permissionsArray fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
}

我想知道两件事:

1)以下是否会遇到竞争状态? 2)如果是这样,我应该如何以及如何使logOut同步以避免这种情况?

1 个答案:

答案 0 :(得分:1)

我认为解决此问题的更好方法是检查currentAccessToken是否为零并进行相应管理。

FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];

if ([FBSDKAccessToken currentAccessToken]) {
    // It will be synchronous and will present an alert controller which will further confirm you to logout and will set token and profile to nil.
    [loginManager logOut];
    //after logout you can change your LogOut Button to Login Facebook as done in Facebook samples.
} else { 
    // if the token is nil, just make a login call
    [loginManager logInWithReadPermissions:permissionsArray fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    }
}