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

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 回答