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

时间:2012-07-05 14:00:52

标签: ios core-data restkit

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

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

我做了一些搜索,从我的理解看起来我可以通过获取数据来利用Core Data,然后将其存储到看似数据库的内容中。然后,我可以从NSManagedObjects中获取预加载的数据,并在运行时显示它们。

这是正确的做法吗? 此外,如果数据发生变化(销售新项目),Restkit会处理此问题并将其存储到核心数据中,还是需要将其设置为注意更改?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

使用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必须像复制包资源一样集成。

如果您不想刷新所有数据,此系统可以为您提供帮助。

答案 1 :(得分:0)

查看RestKit Examples目录并打开RKTwitterCoreData项目。它向您展示了一个完全符合您描述的系统。