0

UINavigationControllerオブジェクトを作成し、ウィンドウのrootViewControllerプロパティとして設定しました。オブジェクトのrootViewControllerUINavigationControllerと呼ばれるクラスUINavigationMenuViewControllerです。UINavigationMenuViewControllerたとえば、からに移動したい場合はUIUserProfileViewController、次を使用できます。

navigationController!.pushViewController(userProfileVC, animated: true)

としても

navigationController?.pushViewController(userProfileVC, animated: true)

効果は同じようです。私は違いが何であるか疑問に思っています。2 番目の方法の方が安全だと思います。UINavigationMenuViewControllerオブジェクトを に埋め込むのを忘れた場合でもUINavigationController、最初の方法と比較して、アプリはクラッシュしません。これはオプショナル チェーンとも呼ばれていると思いますが、まだ Swift を学んでいるのでよくわかりません。

アドバイスをお願いします。

4

2 に答える 2

2

疑わしい場合は、変数がnilの場合、アプリがクラッシュする原因となるという理由から、強制的なアンラップよりもオプションのチェーンを優先する方が常に安全です。

ただし、クラッシュが優れたデバッグ ツールになる場合もあります。ナビゲーション コントローラーが nil に設定されている場合は、それを開発上のミスと見なすことができます。そのため、アプリをクラッシュさせるとミスがより明確になります。

それに加えて、私の推奨事項は、常にオプションの chaining および/またはオプションの bindingを使用し、強制アンラップの使用を次の場合に制限することです。

  • あなたはオプションがnilではないことを確信しています
  • nil ではないことを確認しました
  • (上記のように)オプションがnilの場合、アプリをクラッシュさせたい
于 2015-04-14T15:55:37.527 に答える