2017-05-21 5 views
-1

は、私は、変数を作成しnilです。私が明らかにいくつかのチェックを行った後、ViewControllerはゼロになります。はApplicationWillTerminateの私AppDelegateで

これを修正する方法を知っている人はいますか?

は、私は私のコメントで言ったように、私はそのinitはあなたがオーバーライドすることはできませんので、不可能である、failableた場合はそれができる唯一の方法は次のようになりますのでfirstVCがnilであることを想像することはできません非常に

+1

FirstViewControllerとは何ですか?なぜそれをApplicationWillTerminate内に作成していますか? –

+0

Gagan_iOSは「FirstViewController」がnilであるとは思っていません。代わりに 'lbl'はストーリーボードから' FirstViewController'をインスタンス化せず、NIBからロードしないときに接続されていないコンセントです。 – thm

+0

私はlbl.textをUserDefaultとしてApplicationWillTerminateに保存しようとしていて、コンセントは接続されていません。 –

答えて

0

をありがとうUIViewController.init()があり、それでもコンパイラはprint(firstVC?.lbl.text)と言う必要があると不平を言うでしょう。 Swiftのオプションタイプの美しさを示しています。

確認する:print(firstVC.lbl)は、nilを出力します。アウトレットを接続するロジックは、ストーリーボードからFirstViewControllerをインスタンス化するか、NIBからロードするときにのみ実行されます。あなただけのFirstViewControllerの新しいインスタンスを作成する場合

とにかく、これは、ユーザがその「画面上」の要素が、そのデフォルト値を持つことになりますlblを含むすべての要素に対して行った変更何でも反映するものではありませます。

考えられる解決策:

  • applicationWillTerminate(_:)で活躍FirstViewControllerインスタンスを取得し、私はあなたのアプリケーションが何をしているか知らないが、景色がとてもではなく、あなたのデータを保存するデータモデルを表示する必要があり、そのlblテキスト
  • を保存モデル。
  • Preserving and Restoring State、おそらくView Controller Programming Guide for iOSを見てください。
関連する問題