使用restkit和核心数据的最佳实践

时间:2013-01-07 09:52:32

标签: iphone objective-c ios core-data restkit

我正在构建一个不断与webservice对话的应用程序。所以一直发布和获取数据。但是我发布和获取的所有数据也应保存在手机上。

问题1

当我查看这些例子时。我看到他们正在加载appDelegate中的所有数据。对于加载少量数据,这可能是最好的方法。但在我的情况下,它仍然是最好的方式,还是应该在ViewController Level上执行此操作。

问题2

当我启动应用程序时,我检查了使用核心数据,这在appDelegate中为我生成了很多代码。但在这种情况下,我无法访问managedObjectContextviewController,对吧?

现在我的问题是,正确完成这项工作的最佳方法是什么?

亲切的问候

1 个答案:

答案 0 :(得分:0)

  

问题1

     

当我查看这些例子时。我看到他们正在加载appDelegate中的所有数据。对于加载少量数据,这可能是最好的方法。但就我而言,它仍然是最佳方式,还是应该在ViewController Level上执行此操作。

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

如何最好地处理这取决于您的应用程序。与使用app delegate相比,将数据传输封装到视图控制器中肯定是一个进步。但是,根据您的应用程序,您可能还会设计一个更具体的数据加载控制器来封装所有相关行为。实际上,我认为后一种选择即使对于相对简单的项目也是最有效的。

  

问题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个托管对象上下文,应用程序处理更多等等。如果您的应用程序对核心数据进行了非常基本的使用,您可以将其保留原样。