0

と常に話しているアプリケーションを構築していますwebservice。そのため、常にデータを投稿して取得しています。しかし、投稿して取得したすべてのデータも電話に保存する必要があります。

問題1

例を調べていたとき。にあるすべてのデータを読み込んでいることがわかりましたappDelegate。少量のデータをロードする場合、これがおそらく最良の方法です。しかし、私の場合、それはまだ最善の方法ですか、それともViewController Level.

問題 2

アプリケーションを起動したときにコア データの使用を確認したところ、appDelegate. managedObjectContextしかし、この場合、私は自分のviewControllerレベルに到達できませんよね?

私の質問は、これを適切に行うための最良の方法は何ですか?

敬具

4

1 に答える 1

0

問題1

例を調べていたとき。appDelegate にすべてのデータが読み込まれていることがわかりました。少量のデータをロードする場合、これがおそらく最良の方法です。しかし、私の場合、それはまだ最善の方法ですか、それとも ViewController レベルでこれを行うべきですか。

そのための appDelegate の使用は、サンプル コードの典型です。

これに対処する最善の方法は、アプリによって厳密に異なります。ビュー コントローラーへのデータ転送をカプセル化することは、アプリ デリゲートを使用する場合と比べて確かに一歩前進です。ただし、アプリによっては、関連するすべての動作をカプセル化するために、より具体的なデータ ロード コントローラーを考案することもできます。確かに、後者のオプションは、比較的単純なプロジェクトでも最適に機能すると思います。

問題 2

アプリケーションを起動したときにコア データの使用を確認したところ、appDelegate で大量のコードが生成されました。しかし、この場合、viewController レベルで managedObjectContext にアクセスできませんよね?

appDelegate.h ファイルを調べると、コントローラーからコア データにアクセスするためのプロパティが見つかるはずです。

@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;

それを使用して、マネージド オブジェクト コンテキストにアクセスする[UIApplication sharedApplication].delegateか、そのコードをアプリ デリゲートから独自のモデル マネージャー クラスに分割することができます。繰り返しますが、これはアプリに厳密に依存します。1 つのマネージド オブジェクト コンテキストのみを使用するアプリや、より多くを処理するアプリなどがあります。アプリがコア データの非常に基本的な使用を行う場合は、そのままにしておくことができます。

于 2013-01-07T10:06:31.993 に答える