Facebook SDK(4.x)には、返されたエラーを強制的にアンラップするデリゲートプロトコルがあります。スウィフト:フォールアンラップはゼロで、クラッシュはありません...?
extension FacebookLoginViewController: FBSDKLoginButtonDelegate {
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {
print("\(error)")
if error == nil && result.isCancelled == false {
//success
}
}
}
実行時に、ログインプロセスをキャンセルすると、エラーは返されず、上記のエラーはnilになりません。エラー値がnilの場合、返されるエラーパラメータの強制アンラップは確実にクラッシュするでしょうか?なぜこれがクラッシュしないのですか?それはちょうどそのように動作し、なぜ私は知らない
あなたがしています右! 'ImplicitlyUnwrappedOptional'も 'Optional'です。そうでなければ、コンパイラは' if error == nil ... 'を警告します。 – Lumialxk