現在、CoreData モデルとの相互作用を伴う、必要な特別な機能を処理する目的の C クラス ( NSObject) を作成しました。CoreData と対話するこれらの関数は、dbInterface.h および dbInterface.m ファイルにあります。dbInterface クラスに conform を追加しました<NSFetchedResultsControllerDelegate>
。
@interface dbInterface : NSObject<NSFetchedResultsControllerDelegate>{
NSFetchedResultsController *fetchedResultsController;
NSManagedObjectContext *managedObjectContext;
}
アプリ デリゲートでは、このクラスのインスタンスを作成し、デリゲート マネージド コンテキストを dbInterface オブジェクト マネージド コンテキストに接続しました。
appDelegate.h:
@property (nonatomic, retain) IBOutlet dbInterface *dbConnector;
appDelegate.m:
@synthesize dbConnector;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
dbConnector.managedObjectContext=self.managedObjectContext;
return YES;
}
質問: ビュー コントローラー自体のデータを収集するために、この dbInterface オブジェクトとやり取りする必要がある 6 つのビュー コントローラーがあります。したがって、このセットアップでは、dbInterface が viewController と CoreData モデルの仲介者として機能しています。これは、仲介者である dbInterface クラスで定義したこれらの特定の操作を実行する正しい方法ですか?
それが正しい方法ではない場合、View ControllerのためにCoreDataモデルと対話するにはどうすればよいですか?
それが正しい場合、アプリデリゲートで宣言したオブジェクトにアクセスするにはどうすればよいdbConnector
ですか? 明らかに、dbInterface クラスの 6 つのコピーを作成したくありません。これには、メモリを使いすぎて、この行の 6 つのコピーも書き込まなければならないという問題があります。
dbConnector.managedObjectContext=self.managedObjectContext;
シングルトンバンディという言葉を聞いたことがありますが、これでいいのでしょうか?