5
我使用下面的代碼與Facebook登錄:斯威夫特IOS Facebook登錄崩潰的應用程序,如果用戶取消登錄
@IBAction func fbLoginBtnDidTouch(sender: AnyObject) {
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.logInWithReadPermissions(["email"], fromViewController: self) { (result, error) -> Void in
if (error == nil){
let fbloginresult : FBSDKLoginManagerLoginResult = result
if(fbloginresult.grantedPermissions.contains("email"))
{
self.getFBUserData()
}
}
}
}
的AppDelegate:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}
這將在網頁視圖推出FB。如果用戶從FB帳戶接受應用程序,它將按預期返回到應用程序。
但是,如果用戶點擊NO或與FB web視圖的應用程序會崩潰說點擊完成按鈕(致命錯誤:意外發現零而展開的可選值)
標誌這條線:
if(fbloginresult.grantedPermissions.contains("email"))
那麼,爲什麼應用程序崩潰,如果用戶點擊否或完成?
是,當我取消登錄應用程序崩潰,通過單擊NO或完成按鈕 – user2722667
檢查編輯答案 – tbilopavlovic
謝謝!那樣做了 – user2722667