0

私は iphone アプリケーションに取り組んでいますが、ビュー間で一時データを保持する最善の方法がわかりません。たとえば、サーバーに xml があり、情報を保持できるようにデータを解析してオブジェクトにします。XMLには、あるビューに表示したいデータと、別のビューに表示したい他のデータがあります。ビュー全体でデータを保持したい dataStore というクラスがありますが、それを行うための最良の iphone プラクティスは何ですか?

私は多くのオプションを検討しましたが、次のいずれかを選択できると思います。

1) dataStore をデリゲートとして使用し、アクセス可能なデリゲートにデータを保持します。

2) dataStore をシングルトン クラスとして使用し、クラスの 1 つのインスタンスのみを許可し、dataStore クラスの共有インスタンスからデータにアクセスします。

3)私は知らないが、アプリケーションコンテキストとインスタンスを介してデータを渡すAndroidの方法に精通しているNSMangedObjectContextでさえあるかもしれません。

誰かがiPhoneでのベストプラクティスを選択するのを手伝ってくれたら、私は大歓迎です.

4

4 に答える 4

2

を使用して、データが到着したことをアナウンスできますNSNotification。送信者または情報ディクショナリのいずれかとして、通知とともに一時オブジェクトを送信できます。そのデータの一部を必要とする2つのオブジェクトは、それらの部分を引き出してその場で保持できます。一時データオブジェクトは、一時的なものであり、通知が完了するまで続きます。ビューに必要で気になる部分だけがぶらぶらしていて、各ViewControllerは意味のあるときにいつでもその部分を解放できます。

于 2010-10-23T17:33:06.333 に答える
0

あなたの場合、 dataStore クラスをシングルトンにすることをお勧めします。シングルトンでは、データを解析し、ビューに必要な情報を返すメソッドを用意します。Core Data (managedObjects) は、起動後もデータを維持したい場合に適しています。一般的ですが、appDelegate にデータを保存することは、私が選ぶ最後のオプションです。

于 2010-10-23T16:37:49.477 に答える
0
  1. いいえ、dataStore をデリゲートにすることはできません。デリゲートを保持するべきではないため、データの保存場所としては適しておらず、動作のみに適しています。

  2. ほとんどの場合、シングルトンです。ここにあるのはおそらくアプリのモデルですが、アプリが 2 つのモデルを処理できる必要がある理由はありますか? 多くのドキュメントを同時に表示できますか? シングルトンのクライアントが 2 番目のインスタンスを作成するのを止めるために、コードを 1 行も書かないでください。Objective-C は動的なランタイムであり、永続的なユーザーはとにかく実行できるため、コードで行うことは、潜在的なバグを含むコード行を追加することだけです。

  3. 本当に必要になるまで、Core Data と NSManagedObjectContext を気にしないでください。また、RAM に収まりきらないほど多くのデータをモデルで処理する場合にのみ必要です。

于 2010-10-23T17:08:54.240 に答える
-1

それらのどれも真の MVC ではありません。次の 3 つのクラスが必要です。

  • データを含むモデル
  • ビューは、多くの場合、完全に IB で として行われます.xib
  • のファイルの所有者であり、データをインスタンス フィールドとして持つビュー コントローラ。.xibこれは、モデルのデータをビューに渡す責任があり、ビューはビュー コントローラーをそのdelegateおよびとして設定しますdataSource。このように、ビューは再利用可能であり、データの一部 (つまり、実際に表示されているものとまったく同じ) のみを処理します。
于 2010-10-23T16:42:34.720 に答える