0

私は当初、私の質問への答えは単純な「はい」であると思っていましたが、それ以来行った読書のいくつかは、質問をもう一度見させてくれました。

私の意図は、モジュラー コードを使用することです。これにより、さまざまな機能をアプリに追加するために多数のコード セクションから選択できるようになります。例として、セーフ ブラウジングを可能にするブラウザ コンポーネント、ユーザー調査を行うための調査コンポーネント、およびアプリの主な目的である「コア」コンポーネント (メニューの表示または地図の表示) があるとします。場所の。

独立した各モジュールには、独自の CoreData スタックが必要です。それらは、アプリ自体によって仲介されるもの (デリゲート モデルを使用して行われるアプリへの通信) を除いて、互いに話したり、干渉したりすることはありません。ブラウザーのブックマークとホワイトリストに登録されたサイトのリストは、調査の調査データのリストとは別のものであり、アプリの「コア」が行うことからも完全に分離されています。お互いに話す必要がある場合は、デリゲート コールを通じて行うことができます。デリゲート コールは、「X ページを表示するにはブラウザが必要です」、「この ID で調査を表示する」、または最後に「私は完了したら、メイン アプリに戻ります。」

この道をたどり始めたのは、特定の NSManagedObjectContextDidSaveNotification が特定のコア データ スタックに属しているかどうかを判断する方法がないことに気付いたことです。そして、おそらく、mergeChangesFromContextDidSaveNotification: メソッドで別のコア データ スタックからの通知を MOC に与えることは、悪い考えです。(MOC 自身の通知を MOC に送り返そうとするとどうなるかも気になりますが、これは簡単に実験できます)

4

2 に答える 2

5

特定のコンテキストからの変更を登録できます (これは NSManagedObjectContext ドキュメントで明示的に推奨されています)。

[[NSNotificationCenter defaultCenter] addObserver:self
                           selector:@selector(<#Selector name#>)
                               name:NSManagedObjectContextDidSaveNotification
                             object:<#A managed object context#>];

このような通知を受け取った場合、通知オブジェクトは管理オブジェクト コンテキストです。したがって、各コンポーネントが独自の Core Data スタックを使用する独立したコンポーネントを作成することができます。

于 2013-04-12T18:15:20.147 に答える