0

我是 swift 新手,如何解决可选“致命错误:在展开可选值时意外发现 nil”的错误。当我取消 Facebook 登录过程时会发生此错误。 代码错误

4

2 回答 2

0

发生此错误是因为我没有处理取消事件。

    @IBAction func FBAction(sender: AnyObject) {
            let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
            fbLoginManager.logInWithReadPermissions(["email"], fromViewController: self, handler:{ (result, error) -> Void in

                if ((error) != nil){
                     // Process error
                }
                else if result.isCancelled {
                    // Handle cancellations 
                    //This method ; I should have implemented
                }
                else {
                    let fbloginresult : FBSDKLoginManagerLoginResult = result
                    if(fbloginresult.grantedPermissions.contains("email"))
                    {
                        self.getFBUserData()
                        fbLoginManager.logOut()
                    }
                }

            })
        }
于 2015-10-14T13:54:56.923 回答
0

将该行更改为 an if let,如果检查失败,则可能意味着您取消了登录过程,因为grantPermissions 从未......被授予!

else用户取消登录过程时的块句柄中。希望这有帮助。

于 2015-10-12T08:51:35.903 回答