首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简约英语中的NSIncrementalStore解释

简约英语中的NSIncrementalStore解释
EN

Stack Overflow用户
提问于 2012-05-05 06:53:49
回答 3查看 5.1K关注 0票数 19

当我一直在研究使用核心数据与web服务交互的最佳方法时,我看到了NSIncrementalStore的出现。

在阅读了德鲁·克劳福德的文章编程指南类引用 而本教程几次之后,我仍然在努力理解NSIncremental商店是什么,为什么和什么时候使用它。

谁能解释一下吗?

编辑

在阅读了mundi的答案之后,我可以看到还需要一些更多的上下文。我正在研究如何结合我正在构建的web服务来使用核心数据。我试图找到最好的方式,以存储用户的信息本地设备和张贴到web服务时,有一个连接。我对核心数据缺乏了解,这促使我进行了研究,但我无法完全理解NSIncrementalStore的有用性。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-22 17:13:49

注意:当我在2012年写这篇文章的时候,这个API是最前沿的,细节也发生了变化。如果你愿意的话,可以随时更新。不幸的是,我目前没有从事任何可可/ObjC项目,所以我不是一个保持这一现状的好人。看来总的要旨是正确的。

核心数据提供了一组帮助管理对象持久性的工具,即从某种存储中保存并取回对象集(NSManagedObject)的能力。

当您使用Core对象时,可以使用从NSManagedObjectContext获得的NSPersistentStoreCoordinator。PSC依次与一个或多个NSPersistentStore子类进行对话,这些子类处理存储上的实际操作。(考虑创建/读取/更新/删除数据库)。

核心数据支持两种主要的存储:NSPersistentStoreNSAtomicStore。持久化存储可以看作是数据库:您可以增量地保存、更新和从数据库中获取任意的记录集。原子存储是对象图的“全部或无”表示。它旨在成为结构化文件在内存中的表示形式.

Core数据附带的存储类型如下:

  • NSSQLLiteStoreType (NSPersistentStore)
  • NSInMemoryStoreType (NSPersistentStore)
  • NSXMLStoreType (NSAtomicStore)
  • NSBinaryStoreType (NSAtomicStore)

NSPersistentStore被明确禁止被子类化,因此到目前为止,还没有办法创建您自己的非原子存储后端。也就是说,如果您希望持久化并以零碎的方式查询对象的表示形式,而不是在一个大块(“加载整个图”、“保存整个图”)中,您就运气不佳了。直到iOS5引入NSIncrementalStore

NSIncrementalStore是一个抽象类(继承自NSPersistentStore),您实现该类的方法是在您控制的数据存储区和核心数据世界之间提供适配器。您可以使用它来包装远程API,或者如果您非常倾向于包装类似于NULevelDBNanoStore的东西(尽管我不知道为什么要这样做)。

票数 34
EN

Stack Overflow用户

发布于 2012-05-06 10:23:38

您可以使用NSIncrementalStore通过Core访问远程服务器。您不需要从本地文件中读取和写入本地文件,而是将请求推送到服务器并得到响应,然后将其推入Core数据中。为拯救等而同样

不过,请注意,这并不是一件小事.这是一个非常强大的特性,但除非您是核心数据使用方面的专家,否则我强烈反对它,因为除非您了解Core数据与存储层的交互是如何工作的,否则就有无数的机会可以自投罗网。

如果使用uploaded解决了您的问题,那么可以这样做。

票数 9
EN

Stack Overflow用户

发布于 2012-05-05 09:22:13

简而言之,如果您在核心数据中使用SQLite存储,那么您已经在使用增量存储。增量存储的所有好处(主要是不必将整个存储加载到内存中)已经可以供您使用了。

至于NSIncrementalStore API的具体应用,我建议您首先确切地定义要解决的问题。如果需要此API,则取决于编程任务的特定需求。

响应问题编辑的编辑

我只需要这样做:在设备上的核心数据实体中,可以有一个属性BOOL uploaded。当web服务可用时,启动上传,并提取所有尚未uploaded的对象。

要上传,可以将对象转换为NSArrayNSDictionary,可能转换为JSON格式和POST到您的网站。当网站响应保存数据时,将所有对象标记为uploaded

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10459635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档