目前,我已经创建了一个 Objective-C 类(NSObject)来处理我需要的任何特殊功能,这些功能涉及与我的 CoreData 模型的交互。这些与我的 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;
}
问题:我有 6 个视图控制器,它们必须与这个 dbInterface 对象交互,以收集视图控制器本身的数据。因此,在此设置中,dbInterface 充当 viewController 和 CoreData 模型的中间人。这是执行我在中间人 dbInterface 类中定义的这些特定操作的正确方法吗?
如果这不是正确的方法,那么为了视图控制器,我应该如何与 CoreData 模型进行交互?
如果它是正确的,那么我如何访问我在应用程序委托中声明的对象dbConnector
?显然我不想创建 dbInterface 类的 6 个副本。这存在使用过多内存的问题,然后还必须编写此行的 6 个副本:
dbConnector.managedObjectContext=self.managedObjectContext;
我听说过单身这个词,这是要走的路吗?