我是一名新的 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/