私自身のために、私はある種のMVC構築を作成しました。私はDataManager(シングルトン)を持っています。これは配列や辞書に必要なすべてのデータ(主にモデルで表現されています;プレーンなNSObjects)を保持しています。
ビュー(NibファイルとViewControllers)は、データを取得するためにDataManagerと通信します。データがDataManagerにすでに存在する場合は、通知を介してデータを返します。そうでなければ;それはコントローラにコールを転送し、コールを取得します。
このコントローラでは、オンラインの場合はコールがXMLリクエストで、オフラインの場合はSQLiteデータベースへのコールで、オフライン/オンラインのモデュールでコールを分離します(おそらく重要ではないでしょう)。
コントローラは、DataManagerでデータを設定し、通知をViewにディスパッチできます。
次に、サイクルが再び開始され、ビューはDataManagerを介してデータにアクセスできます。 これはすべて非同期呼び出しで発生するため、通知(DataManagerまたはコントローラにビューを混乱させる場合、スレッドセーフではありません)。
私のAppDelegateは、メインビュー、コントローラ、およびDataManagerの最初の初期化のみを行い、それ以降は引き継ぎます。
あなたのモデル(データ)を中央の場所に置くことは良いことです。多くのクラス依存関係を作り出すことなく、すべてのクラスを通して簡単にアクセスできます。私は等のデータのためのデータマネージャー、非同期URL要求のDownloadManager、XMLパーサ、NSDictionariesからモデルを構築するための工場、DatabaseConnector、のように、また別のクラスに機能のほとんどの種類を分割
など
すてきなデザイン。私のアプリで間違いなくそれを使用します:) – lostInTransit
私は.NET開発で同じことをやって、静的クラスをApp_Codeに配置します。たとえば、People.csにはGetPerson(int id)やGetAllPeople()というメソッドがあります。 iPhoneの場合、これらのデータアクセスファイルはどこに置かれ、どの名前が適切なのでしょうか。 – Picflight
あなたのアプローチを共有していただきありがとうございます。これはまさに私が探しているものです。私は.NET開発者であり、iPhone開発の道を開いています。あなたのアプローチは、.Netの世界でのやり方と非常によく似ています。あなたはDataManagerで通知の使用を拡大してください。 –