Interface BuilderまたはStoryboardsからロードされたときにUIViewController-> UIViewで何が起こっているのかを理解しようとしていました。ストーリーボードのUIViewControllerライフサイクルとiOSでの変数の受け渡し
コントローラ間でパラメータを渡している問題の最も多くのコモンズに直面しているときに、バックグラウンドでの動作が不思議になります。
ナビゲーションコントローラを使用するストーリーボードでは、CoreDataエレメントによってロードされたテーブルビューがあり、詳細ビューを表示するために、segueメソッドで@propertyを介してNSManagedObjectIDとして次のコントローラに渡されます。 受信側のコントローラでは、存在のチェックを行い、必要に応じて完全なオブジェクトを再構築しています。
この時点で、このロジックを配置して処理するのに最適な場所はどこですか? コントローラがサーブレットと呼ばれるJava EEのバックグラウンドから来ており、パフォーマンス上の理由からサーブレットが一度初期化され、(スレッドプールによって)多くのユーザーによって共有される可能性があります。インスタンス変数を持つ @propertyがインスタンス変数であるため、同じメカニズムに入りたくないので、UIViewControllerは一度インスタンス化され、CoreDataオブジェクトはView Controllerの場合には同じままです。
また、viewDidLoadメソッドで@propertyをチェックするのがベストプラクティスの一部だと思いますか? – Leonardo
それはあなたが "チェックする"という意味にかかっています。 「その物件に有効な価値があることを主張する」という意味ですか?その時点で価値が無効であるべき状況がまったくない場合、私はなぜそうでないのか分かりません。一般的には行われていませんが、防衛的にプログラミングすることは通常は賢明です。ビューが表示される直前に起こる '-viewWillAppear:'でそのようなチェックを行うほうが良いかもしれません。画面上に表示する準備ができなくてはならないうちに、ビューが長く読み込まれる可能性があります。 –