2013-01-07 44 views
0

我正在构建一个不断对webservice说话的应用程序。所以一直在发布和获取数据。但是我发布和获取的所有数据都应该保存在手机中。使用restkit和核心数据的最佳做法

问题1

当我在寻找通过例子。我看到他们正在载入appDelegate中的所有数据。要加载少量数据,这可能是最好的方法。但在我的情况下,它仍然是最好的方法,或者我应该这样做ViewController Level

问题2

当我开始我检查使用核心数据的应用程序这产生了大量的代码,我在appDelegate。但在这种情况下,我无法在viewController Level上得到我的managedObjectContext,对不对?

我的问题是,现在最好的方法是什么才能正确完成这个任务?

亲切的问候

回答

0

问题1

当我在寻找通过例子。我看到他们正在加载appDelegate中的所有数据。要加载少量数据,这可能是最好的方法。但在我的情况下,它仍然是最好的方式,或者我应该在ViewController级别上执行此操作。

使用appDelegate是典型的示例代码。

如何最好地处理,严格取决于您的应用程序。与使用应用程序委托相比,将数据传输封装到视图控制器当然是一个进步。但是,根据你的应用程序,你也可以设计一个更具体的数据加载控制器来封装所有相关的行为。事实上,我认为后者的选择对于相对简单的项目来说效果最好。

问题2

当我开始我检查使用的核心数据这产生了大量的代码,我在的appDelegate应用。但在这种情况下,我无法在viewController Level上访问我的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个托管对象上下文,处理更多的应用程序等。如果您的应用程序对核心数据的使用非常基本,则可以保持原样。

+0

非常感谢您的回答!这对我帮助很大!但是现在我正在尝试使用RestKit,但我遇到了以下问题,希望您也可以在这里帮助我。 HTTP://计算器。com/questions/14196908/restkit-route-error – Steaphann

+0

很高兴为此提供了帮助,但我不知道您遇到的其他问题,我很抱歉... – sergio

相关问题