iOS中的Facebook身份验证错误

时间:2016-02-23 16:10:31

标签: ios swift facebook

我在我的应用中使用Facebook SDK。除了一件事,一切都很好: 当用户在webView中点击“完成”按钮时,我得到“致命错误:在解开可选值时意外发现nil”并且应用程序崩溃。任何想法为什么会发生? SCREENSHOT

这里是ViewController代码:

@IBAction func btnFBLoginPressed(sender: AnyObject) {
    let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
    fbLoginManager.logInWithReadPermissions(["email"], fromViewController: self, handler:{ (result, error) -> Void in
        if (error == nil) {
            let fbloginresult : FBSDKLoginManagerLoginResult = result
            if(fbloginresult.grantedPermissions.contains("email"))
            {
                self.getFBUserData()
                fbLoginManager.logOut()
            }
        } else {
            print("Smthng Wrong")
        }
    })
}
func getFBUserData(){
    if((FBSDKAccessToken.currentAccessToken()) != nil) {
        FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).startWithCompletionHandler({ (connection, result, error) -> Void in
            if (error == nil){
                print(result)
            }
        })
    } else {
        print("Error")
    }
}

1 个答案:

答案 0 :(得分:0)

您的代码正在做什么 - 因为Facebook登录正在获取数据的过程中,它需要电子邮件处理它,并且电子邮件是可选类型,这就是为什么xcode显示致命错误,因为它无法找到电子邮件需要。
解决方案是你必须像下面的代码一样处理错误 如果错误为零则显示警报或执行您想要的操作

希望它会对你有所帮助。

使用以下代码更新facebook Action

void OnDisable () {
    GameMachine.Gameover -= _destroy;
}