首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建CoreData接口

创建CoreData接口
EN

Stack Overflow用户
提问于 2013-02-07 18:03:16
回答 1查看 92关注 0票数 0

目前,我已经创建了一个Objective类( NSObject)来处理我需要的任何特殊函数,这些函数涉及到与我的CoreData模型的交互。这些与我的CoreData交互的函数位于dbInterface.h和dbInterface.m文件中。在dbInterface类中,我添加了一个符合<NSFetchedResultsControllerDelegate>

代码语言:javascript
运行
复制
@interface dbInterface : NSObject<NSFetchedResultsControllerDelegate>{
    NSFetchedResultsController *fetchedResultsController;
    NSManagedObjectContext *managedObjectContext;
}

在应用程序委托中,我创建了这个类的一个实例,并将委托托管上下文与dbInterface对象托管上下文连接起来:

附议代表:

代码语言:javascript
运行
复制
@property (nonatomic, retain) IBOutlet dbInterface *dbConnector;

表2.m:

代码语言:javascript
运行
复制
@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份这行的副本:

代码语言:javascript
运行
复制
dbConnector.managedObjectContext=self.managedObjectContext;

我听过“单身人士”这个词,这是不是该走的路?

EN

回答 1

Stack Overflow用户

发布于 2013-02-07 19:52:08

您应该能够从应用程序委托引用您的类的实例。下面是用于引用来自另一个类的应用程序委托的代码。您将不得不将您的类前缀更改为您使用的任何内容。

代码语言:javascript
运行
复制
#import "NXAppDelegate.h"
NXAppDelegate *appDelegate = (NXAppDelegate *)[[UIApplication sharedApplication] delegate];

由于您使用dbConnector作为属性,您可以通过应用程序委托引用它(下面的示例):

代码语言:javascript
运行
复制
viewController.managedObjectContext = appDelegate.dbConnector.managedObjectContext;

使用单例开发是iOS开发中的一个小问题。它有过度使用或使用的趋势,而没有真正的需要。如果您已经评估了您的条件,并且不能使用委托、协议或子类来满足您的需求,我建议使用单例。

看起来苹果已经更新了他们的文档,以帮助解释如何正确使用单身汉,如果你想阅读这个主题的话。

http://developer.apple.com/library/mac/#documentation/General/Conceptual/DevPedia-CocoaCore/Singleton.html

此外,网上有很多文章可以讨论单身人士的利弊。

http://jason.agostoni.net/2012/01/22/ios-best-practices-singletons/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14757883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档