2016-11-21 16 views
0

私が正しい場合:EXC_BAD_INSTRUCTIONは、何かが存在しないためにアプリケーションがクラッシュしたことを意味します。スイフトベース。スレッド1:EXC_BAD_INSTRUCTION(コード= EXC_I386_INVOP、サブコード= 0x0)

(それをグーグルし、それラウンド私の頭を取得しようとした後に)しかし、私はエラーを取得しています:

Thread 1:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

私が試したし、別のビューをロードする場合。私はこの関数を呼び出しています

func loginUserNeedsEmailVerification() { 

    let next = self.storyboard?.instantiateViewController(withIdentifier: "LoginViewController") as! LoginViewController 
    next.isUserLoggedInButNeedsEmail = true 
    self.present(next, animated: true, completion: nil) 
} 

これは、アプリがクラッシュ機能です。そのような別の関数から:ファイルが存在するにもかかわらず

perform(#selector(loginUserNeedsEmailVerification), with: nil, afterDelay: 0) 

、私はを変えました!そのような:

let next = self.storyboard?.instantiateViewController(withIdentifier: "LoginViewController") as? LoginViewController 
    next?.isUserLoggedInButNeedsEmail = true 
    self.present(next?, animated: true, completion: nil) 

そして、最後の行で投げ別のエラー:

Value of optional type is not unwrapped.

私は少し修正をクリックします。

self.present((next?)!, animated: true, completion: nil) 

しかし、その後もエラーがそうのようなこと:それはこれにコードを変更し、私は間違って

optional chain has no effect

何をやっている、と私はこれをどのように修正するのですか?

+0

どのクラスでもデータベース参照を使用してグローバル変数を宣言していますか? – Dravidian

+0

@Dravidian私はそれが表示されているビューコントローラとは何か関係がありませんか?はい、私は標準のFIRDatabase.database()を持っています。参照() – JamesG

+0

@JamesGこのクラッシュはFirebaseとは関係ありません。 'storyboard'プロパティが' nil'であるか、 'instantiateViewController'メソッドから返された' UIViewController'インスタンスが 'nil'であるかをチェックします。 –

答えて

0

instantiateViewController、 の間に同じ問題が発生しましたが、私は別のクラスからメソッドを呼び出しているので少し違いがあります。

うまくいかないかを確認するための一般的な方法は、このようなstoryboard!として?を設定することである:あなたはおそらく、このエラー
fatal error: unexpectedly found nil while unwrapping an Optional valueを、表示されます self.storyboard!.instantiateViewController

ストーリーボードが発見されたことを意味し
なし。私の場合、私は何とかUIStoryboardの既存のリファレンスを取得できません(別のクラスから呼び出されて以来)。私が見つけた

ソリューションは、最初に再宣言しUIStoryboardです:
let next = UIStoryboard(name: "Main", bundle:nil).instantiateViewController(withIdentifier: "LoginViewController") as? LoginViewController
それはまだストーリーボードの現在の参照を取得しませんが、それは私のために動作するため、私は、なぜこの作品を確認していません。

関連する問題