Ich benutze den folgenden Code für einen Facebook Login. Es funktioniert perfekt für die überwiegende Mehrheit der Benutzer, aber aus irgendeinem Grund stürzt es für die wenigen.Swift Facebook Login Crash
Weil niemand irgendwelche Absturzberichte eingereicht hat und die Tatsache, dass ich das Problem nicht reproduzieren kann, bedeutet, dass ich mir den Kopf zerbringe und versuche herauszufinden, warum.
Jede Hilfe sehr geschätzt!
@IBAction func btnFBLoginPressed(sender: AnyObject) {
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager .logInWithReadPermissions(["public_profile","email", "user_friends"], fromViewController: self, handler: { (result, error) -> Void in
if (error == nil){
let fbloginresult : FBSDKLoginManagerLoginResult = result
if result.isCancelled {
print("cancelled")
return
}
if(fbloginresult.grantedPermissions.contains("email"))
{
self.getFBUserData()
//fbLoginManager.logOut()
}
}
})
}
func getFBUserData(){
if((FBSDKAccessToken.currentAccessToken()) != nil){
FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email, gender, age_range, locale"]).startWithCompletionHandler({ (connection, result, error) -> Void in
if (error == nil){
let userName : NSString = result.valueForKey("name") as! NSString
let facebookID : NSString = result.valueForKey("id") as! NSString
let firstName : NSString = result.valueForKey("first_name") as! NSString
let lastName : NSString = result.valueForKey("last_name") as! NSString
let email : NSString = result.valueForKey("email") as! NSString
let gender : NSString = result.valueForKey("gender") as! NSString
let locale : NSString = result.valueForKey("locale") as! NSString
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("\(userName)", forKey: "userName")
defaults.setObject("\(facebookID)", forKey: "facebookID")
defaults.setObject("\(firstName)", forKey: "firstName")
defaults.setObject("\(lastName)", forKey: "lastName")
defaults.setObject("\(email)", forKey: "email")
defaults.setObject("\(gender)", forKey: "gender")
defaults.setObject("\(locale)", forKey: "locale")
}
})
}
}