Я использую Xcode 7.0, тестирование на iOS 9.0.2 и использование Facebook SDK 4.7.0.
Когда я регистрирую пользователя, большую часть времени все работает так, как должно, однако иногда я продолжаю получать эту ошибку, и я понятия не имею, почему!
Операция не может быть завершена. (ошибка com.facebook.sdk.login 308.)
После исследования я увидел, что некоторые люди получают ошибку при входе в систему с parse.com FBUtils
и официальным FBSDK
в то же время, однако я использую только FBSDK
в своем проекте.
Итак, мой вопрос: почему я получаю эту ошибку и как мне ее избавиться?
Изменить - добавление кода
Вот моя логика логики:
func loginWithFacebook(sender: UIViewController, completion: (profile: FBSDKProfile?, token: String?, cancelled: Bool, error: String?) -> Void ) {
FBSDKProfile.enableUpdatesOnAccessTokenChange(true)
NSNotificationCenter.defaultCenter().addObserver( sender , selector: "onProfileUpdated:", name:FBSDKProfileDidChangeNotification, object: nil)
let loginManager = FBSDKLoginManager()
loginManager.logInWithReadPermissions(["email", "public_profile"], fromViewController: sender) { (result: FBSDKLoginManagerLoginResult!, error: NSError!) -> Void in
if error != nil {
print("ERROR")
completion(profile: nil, token: nil, cancelled: false, error: error.localizedDescription)
print(error.localizedDescription)
} else if result.isCancelled {
print("CANCELLED")
completion(profile: nil, token: nil, cancelled: true, error: nil)
} else {
print("NO ERROR")
if FBSDKProfile.currentProfile() == nil {
print("PROFILE IS NIL")
completion(profile: nil, token: result.token.tokenString, cancelled: false, error: nil)
} else {
print("PROFILE IS NOT NIL")
completion(profile: FBSDKProfile.currentProfile(), token: result.token.tokenString, cancelled: false, error: nil)
}
}
}
}