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

Posted

技术标签:

【中文标题】使用 restkit 和核心数据的最佳实践【英文标题】:Best practice of using restkit and core data 【发布时间】:2013-01-07 09:52:32 【问题描述】:

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

问题 1

当我浏览示例时。我看到他们正在加载appDelegate 中的所有数据。对于加载少量数据,这可能是最好的方法。但就我而言,它仍然是最好的方法还是我应该在ViewController Level 上这样做。

问题 2

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

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

亲切的问候

【问题讨论】:

【参考方案1】:

问题 1

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

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

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

问题 2

当我启动应用程序时,我检查了使用核心数据,这在 appDelegate 中为我生成了很多代码。但在这种情况下,我无法在 viewController 级别访问我的 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 个托管对象上下文,有些应用处理更多,等等。如果您的应用对核心数据的使用非常基本,您可以保持原样。

【讨论】:

非常感谢您的回答!这对我帮助很大!但是现在我正在尝试使用 RestKit,但是我遇到了以下问题,希望你也可以在这里帮助我。 ***.com/questions/14196908/restkit-route-error 很高兴在这方面提供了帮助,但我不知道您遇到的其他问题,对不起...

以上是关于使用 restkit 和核心数据的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

核心数据模型对象保存的最佳实践

Mybatis-应用分析和最佳实践-核心配置

核心数据请求和保存的最佳实践

预加载具有多对多关系的核心数据的最佳实践

获取多对象的核心数据最佳实践

Navigation iPhone App 的核心数据最佳实践问题