2017-11-04 9 views
0

私は複数のビューコントローラで同じデータを必要とするアプリケーションを持っています。現在のところ、このデータにアクセスするには、performSegueを使用して、アプリケーションをナビゲートするときに、あるコントローラから別のコントローラにクラスインスタンスを送信します。CoreDataまたはSegueにアクセスするためのクラスインスタンス

私の質問は次のとおりです。代わりに、CoreDataを使用して各ビューコントローラ内のデータにアクセスするコードはよりクリーンですか? performSegueを使用する代わりに、ViewDidLoadでcoreDataを照会し、CoreDataから取得した文字列をクラスインスタンスオブジェクトに変換することができます。あなたが説明するように沿って管理対象オブジェクトを渡す

+1

NSManagedObjectインスタンスを 'prepareForSegue'を通して渡します。そのようにして、ビュースタックを逆戻りするときにデータを再フェッチすることについて心配する必要はありません – Paulw11

+0

ありがとうPaul!それが私がすることです。 – bcupp

答えて

0

は、依存性注入デザインパターンへの1つのアプローチであり、一般に各ビューコントローラは、それが必要とするオブジェクト(複数可)を調べることよりも良いアイデアです。

これらのビューコントローラでは、で管理オブジェクトを単独で検索する必要がありますか?つまり、管理対象オブジェクトを渡すことができない場合や、何らかの理由で適切なものを渡すことができない場合に使用されますか?そうであれば、管理されたオブジェクトを参照できるようにするのが理にかなっているかもしれません。そうでない場合は、重複コードが発生し、複雑さが増し、メリットがありません。

要するに、すでに正しいことをしているように聞こえますし、説得力のある理由がわからない限り、あなたが変更を加えるべきではありません。

+0

おかげでトム。それは最良の選択肢のようです。私は、CoreDataをすべてのものに使用するというアイデアには少し興奮していると思います。 – bcupp

関連する問題