2011-07-11 2 views
3

基本モデルではじめてコアデータを使用する良い方法を知っている人はいますか?私はデータを保存する必要がない単純なアプリケーションを(現時点では)持っていますが、Core Dataがそれを過度に使うとは思いません。iOS iPhone MVCの基礎

私はApp Delegateを使用してデータを格納したり、個々のビューにデータを格納したりする必要はありません。私は将来的にコアデータに切り替えることができる何らかの「移行」タイプのソリューションを見つけることを望んでいました。

私はいくつかの簡単な例を見てきましたが、特定のビューコントローラ内にモデルのインスタンスを格納する必要があります。私はいくつかの意見を持っていることを計画しているので、私はより良い方法を探したい。

答えて

3

アプリのデータモデルは、辞書、辞書の配列、またはそのような文字の普通の古いCスタイルの配列と同じくらい簡単です。また、これをさらに進めるには、データを格納するだけでなく、アプリケーションに必要に応じてデータを操作するカスタムモデルクラスを作成することもできます。

各コントローラがモデルにアクセスする方法は異なる質問です。シングルトンを使うのが好きな人もいます(私はそうではありません)ので、世界中にアクセスすることができます。 (IMO)より良いアプローチは、アプリケーションデリゲートやルートビューコントローラのようなオブジェクトでモデルをインスタンス化し、モデル全体へのポインタまたはモデルの一部へのポインタを渡して、必要に応じてコントローラを表示することです。アドレス帳アプリケーションは、たとえば、Personオブジェクトだけをアドレス詳細ビューコントローラに渡すことができます。

+0

これまでのところ、これらのURLは参考になっています。http://www.bit-101.com/blog/?p=1969#comment-88765およびhttp://cocoawithlove.com/2008/11/singletons-appdelegates- and-top-level.htmlを参照してください。しかし、モデルにアクセスするとき、View Controllerがお互いにうまくやり合うための最良の方法を探しています。 – gonzobrains

+0

それをもう一度取り上げることは、私が今興味を持っていることです。 – gonzobrains

+0

次に、必要なのは:1)NSObjectをサブクラス化し、保存するデータのプロパティを追加します。 2)モデルのインスタンス化とアクセス方法を決定します。 (1)は簡単で、上記の(2)のいくつかのオプションについて説明しました。データモデルがアプリケーションの属性であり、アプリケーションデリゲートが通常アプリケーションを専門化する手段を提供することを考慮すると、アプリケーションデリゲートでモデルを作成するのが適切です。 Appデリゲートは、作成した最初のView Controllerに渡すことができます。 – Caleb