我是一名新的iOS开发人员,我正在制作一款消费Restful网络服务信息的iOS应用程序。我能够从服务器获取数据,但有时数据需要一段时间才能加载。数据的某些方面不会一直变化(例如,商店销售的商品),但每天都会更改数据的某些方面(例如,某个商品的库存数量)。 我想将不会一直变化的数据存储到iOS内存中。根据我的研究,核心数据看起来是最好的方法。
如何将不会一直变化的对象数据存储到iOS核心数据中并让它在启动时加载该数据,然后获取随时更改的信息?
我做了一些搜索,从我的理解看起来我可以通过获取数据来利用Core Data,然后将其存储到看似数据库的内容中。然后,我可以从NSManagedObjects中获取预加载的数据,并在运行时显示它们。
这是正确的做法吗? 此外,如果数据发生变化(销售新项目),Restkit会处理此问题并将其存储到核心数据中,还是需要将其设置为注意更改?
感谢您的帮助!
答案 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项目。它向您展示了一个完全符合您描述的系统。