2016-07-20 6 views
0

私はFacebookを使ってログインし、プロフィール画像を取得してアプリのプロフィール画像として使用するアプリを作成しています。これはコードです:(Firebase)FacebookログインでEXC_BAD_INSTRUCTIONを取得する

if let user = FIRAuth.auth()?.currentUser { 
    // User is signed in. 
    let name = user.displayName 
    let email = user.email 
    let photoUrl = user.photoURL 
    let uid = user.uid; 

    self.profileName.text = name 

    // ERROR: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) 
    let data = NSData(contentsOfURL: photoUrl!) 
    self.profilePic.image = UIImage(data: data!) 


} 

このエラーはFacebookからのログインNOTを使用している場合にのみ発生します。 Facebookを介してそれを行うとき、それはうまく動作します。私は定期的に(Facebookではなく)ログインすると、この行に「写真がありません、あなたは何を話しているのですか?」というエラーが発生することがあります。クラッシュする。しかし、私はこの問題を回避する方法については不明です。私はFirebaseを使用しています。

ご協力いただきまして誠にありがとうございます。

+0

[「致命的なエラー:予期せずオプションの値アンラップしながら、nilを見つけ、」何?意味を]の可能複製(http://stackoverflow.com/questions/32170456/what-致命的なエラー - 予期せぬことに - 見つからない - アンラッピング - オプションの値) – Hamish

答えて

1

これは、photoUrlがゼロであることを意味します。強制アンラップ演算子!を使用しているため、コードがクラッシュします。あなたは安全に代わりにそれをアンラップする必要があります

if let photoUrl = photoUrl, data = NSData(contentsOfURL: photoUrl) { 
    self.profilePic.image = UIImage(data: data) 
else { 
    print("No photo") 
} 
+0

これは機能しました!ありがとうございました。 – evanhaus

関連する問題