ios - 如何使用 Restkit 和 Core Data 存储对象和种子预加载数据

标签 ios core-data restkit

我是一名新的 iOS 开发人员,我正在制作一个使用来自 Restful 网络服务的信息的 iOS 应用程序。我能够从服务器获取数据,但有时数据需要一段时间才能加载。数据的某些方面不会一直变化(例如,商店销售的商品),但数据的某些方面每天都在变化(例如,特定商品的库存数量)。 我想将一直不会改变的数据存储到iOS内存中。根据我的研究,核心数据似乎是实现这一目标的最佳方式。

如何将不会一直变化的对象数据存储到 iOS 的核心数据中,并让它在启动时加载该数据,然后在以后获取一直变化的信息?

我进行了一些搜索,根据我的理解,我似乎可以通过获取数据来利用核心数据,然后将其存储到看起来像数据库的地方。然后我可以从 NSManagedObjects 获取预加载的数据并在运行时显示它们。

这是正确的做法吗? 此外,如果数据发生变化(销售新商品),Restkit 会处理它并将其存储到核心数据中,还是我需要对其进行设置以注意到变化?

感谢您的帮助!

最佳答案

使用 RestKit,您可以基于 CoreData 模型构建数据库,但也可以使用预填充的数据库进行构建。

您的 objectManager 应如下所示:

RKObjectManager* objectManager = [RKObjectManager managerWithBaseURLString:@"http://your-url.com"];
objectManager.objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:@"new-database.sqlite" usingSeedDatabaseName:nil managedObjectModel:nil delegate:self];

或者如果你想要一个预填充数据库的副本,可以这样:

objectManager.objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:@"new-database.sqlite" usingSeedDatabaseName:@"last-database.sqlite" managedObjectModel:nil delegate:self];

您的 last-database.sqlite 必须像复制资源包一样集成。

如果你不想刷新所有数据,这个系统可以帮助你。

关于ios - 如何使用 Restkit 和 Core Data 存储对象和种子预加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11345931/

相关文章:

ios - 当我调用 glFinish() 时,这是否意味着 OpenGL ES 会忽略进一步的调用,直到我调用 -setCurrentContext :?

ios - Storyboard上的按钮看起来很奇怪

iOS 核心数据加密

ios - RestKit JSON 元数据的响应描述符

iOS 7 剪切、复制、全选 - 文本选项颜色

ios - 为什么Xcode总是不显示参数默认值的提示?

objective-c - RestKit - 在示例应用程序中映射用户对象

objective-c - 核心数据在以编程方式执行时不保存更新。

ios - "Create NSManagedObject subclass"创建 .h 和 .m 而不是 .swift 文件

ios - 在 UITableView 中显示一个表中的中型数据集