NSIncrementalStore 的简单英语解释

2024-01-23

我一直看到NSIncrementalStore当我一直在研究使用核心数据与 Web 服务交互的最佳方式时,这个问题就出现了。

看完之后德鲁·克劳福德的文章 http://sealedabstract.com/code/nsincrementalstore-the-future-of-web-services-in-ios-mac-os-x/, 编程指南 http://developer.apple.com/library/mac/#documentation/DataManagement/Conceptual/IncrementalStorePG/Introduction/Introduction.html#//apple_ref/doc/uid/TP40010706, 类参考 https://developer.apple.com/documentation/CoreData/Reference/NSIncrementalStore_Class/Reference/NSIncrementalStore.html 和这个教程 https://gist.github.com/1860108每次我仍然很难理解什么NSIncremental商店是什么,为什么以及何时使用它。

有人可以解释一下吗?

Edit
阅读 Mundi 的答案后,我发现需要一些进一步的背景信息。我正在考虑将核心数据与我正在构建的网络服务结合使用。我正在尝试找到将用户信息本地存储在设备上并在有连接时发布到网络服务的最佳方法。我对核心数据的缺乏促使我进行研究,但我无法完全理解它的用处NSIncrementalStore.


注意:当我在 2012 年写这篇文章时,这个 API 是最前沿的,并且细节已经发生了变化。如果您愿意,请随时更新此内容。我目前没有从事任何 Cocoa/ObjC 项目,因此不幸的是,我不是一个保持最新状态的好人。看来大体的主旨是正确的。

Core Data 提供了一组帮助管理对象持久性的工具,即保存然后取回对象集的能力(NSManagedObject)来自某种存储。

当您使用 Core Data 对象时,您可以使用NSManagedObjectContext,您可以从NSPersistentStoreCoordinator。 PSC 依次与一名或多名NSPersistentStore子类,处理商店的实际操作。 (想想对数据库的创建/读取/更新/删除。)

Core Data 支持两种主要类型的存储:NSPersistentStore and NSAtomicStore。持久存储可以被认为是一个数据库:您可以增量地保存、更新和从中获取任意记录集。原子存储是对象图的“全有或全无”表示。它旨在成为结构化文件的内存中表示。

Core Data 附带的商店类型有:

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

NSPersistentStore明确禁止子类化,因此到目前为止,还没有办法创建自己的非原子存储后端。也就是说,如果您想零碎地持久化和查询对象的表示,而不是一大堆(“加载整个图表”,“保存整个图表”),那么您就不走运了。直到iOS5推出NSIncrementalStore.

NSIncrementalStore是一个抽象类(源自NSPersistentStore)您实现的方法可以在您控制的数据存储和核心数据世界之间提供适配器。您可以使用它来包装远程 API,或者如果您愿意,您可以包装类似的东西NU级别数据库 https://github.com/nulayer/NULevelDB or 纳米商店 https://github.com/tciuro/NanoStore(虽然我不确定你为什么要这样做)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSIncrementalStore 的简单英语解释 的相关文章

随机推荐

  • IE10有flex-grow吗?

    Caniuse 使用 ms 前缀表示部分支持http caniuse com search flex grow http caniuse com search flex grow据我所知 然而 当测试 ms flex grow 在 IE10
  • 使用 OpenCV 检测越线人员

    我想统计从两边越线的人数 我有一个放置在天花板上的摄像机 拍摄线条所在的地板 因此摄像机只能看到人的头顶 因此它更多的是物体检测而不是人检测 是否有针对此问题或类似问题的示例解决方案 那我可以向他们学习吗 编辑1 任何时刻都有不止一个人越线
  • python:从字符串模板中提取变量

    我熟悉使用将变量插入字符串的能力模板 https docs python org 2 library string html template strings 像这样 Template value is between min and ma
  • 如何判断该点是否在四面体中?

    我知道四面体的所有坐标和我想确定的点 那么有人知道该怎么做吗 我试图确定该点属于四面体的每个三角形 如果它对所有三角形都成立 则该点位于四面体中 但这绝对是错误的 对于四面体的每个平面 检查该点是否与其余顶点位于同一侧 bool SameS
  • dplyr 中字符串的新列[重复]

    这个问题在这里已经有答案了 我有一个数据框 library tidyverse df lt tribble col1 col2 1 2 现在我想创建一个专栏 我有一个字符串中的新列的名称 它确实像这样工作 df gt mutate col3
  • 可以在运行时将目录添加到类路径中吗?

    为了更好地理解 Java 中的工作原理 我想知道是否可以在运行时动态地将目录添加到类路径中 例如 如果我启动一个 jar using java jar mycp jar 并输出java class path财产 我可能会得到 java cl
  • 类型错误:+ 不支持的操作数类型:“生成器”和“生成器”

    我在目标函数中添加三个表达式时遇到问题 我用了quicksum构建每个表达式 但是 当我尝试将它们添加在一起时 出现错误 无法在 生成器 类上使用 操作数 这是我的代码的最后一部分 the shipping cost expression
  • Angular是否需要取消订阅this.activatedRoute订阅

    My code ngOnInit this activatedRoute params subscribe params Params gt do stuff this activatedRoute data subscribe data
  • Builders 页面从 Eclipse 项目属性中消失

    我不知道我的带有最新 Android SDK 和最新 Sequoyah 插件的 Eclipse Helios 发生了什么 突然 我在项目属性中看不到 构建器 页面 不是工作区中的单个项目 我怎样才能恢复这个页面 检查您目前处于哪个视角 右上
  • 如何处理ETIMEDOUT错误?

    如何处理此调用的 etimedout 错误 var remotePath myremoteurltocopy var localStream fs createWriteStream myfil var out request uri re
  • 在Linux中设置Mysql++

    我想在linux中用C 连接mysql数据库 在我的本地计算机上 我运行 Ubuntu 并安装了 mysql 服务器和客户端软件包 sudo apt get install mysql server mysql client 我碰到Mysq
  • 有什么方法可以获得断点特定的宽度类吗?

    Bootstrap 4 包括宽度类别 https getbootstrap com docs 4 0 utilities sizing w 25 w 50 w 75 w 100 我只想为某些断点及以上指定宽度 例如 w md 25 等 是否
  • 在电子邮件正文中显示 Python HTML 表

    我编写了一个 python 脚本来查询数据库并以 HTML 表格式显示数据 我怎样才能让这个代码以表格的形式显示在电子邮件中 我尝试将代码粘贴到第二个脚本 EMAIL 的 html 标签内 但它不读取 python 代码 仅读取 HTML
  • CUDA 点积

    我正在做一个 cuda 教程 其中我必须制作两个向量的点积 实施教程中提供的解决方案后 我遇到了一些问题 这些问题已在this https stackoverflow com questions 15822412 dot product i
  • Rails Devise:如何(mem)缓存设备对用户对象的数据库请求?

    每次我点击经过身份验证的页面时 我都会注意到设计发出一条 SQL 语句 用户负载 0 2ms 选择users FROM users WHERE users id 1 限制 1 顺便说一句 我正在使用Rails 3 所以cache money
  • 为 DividerItemDecoration 设置可绘制对象

    我正在尝试为 DividerItemDecoration 设置自定义可绘制 线 但没有成功 错误在哪里 DividerItemDecoration dividerItemDecoration new DividerItemDecoratio
  • 垃圾收集:对象属性

    假设我有一个对象 其中包含另一个对象作为其属性 例如 var obj 1 42 When obj超出范围 所有嵌套对象是否都隐式销毁 或者我需要迭代它们并且delete明确地 是的 除非另一个参考仍然存在 var obj 1 42 var
  • 未找到 User 类型的属性索引

    我正在尝试在同一个项目中将 ElasticSearch 与 MySQL 一起使用 我在不同的项目中定义了两个存储库 但我总是收到此错误消息 Exception in thread main org springframework beans
  • Swagger.NET MVC Api 异常

    我一直在寻找提供自动生成的 API 文档的不同选项 Swagger 似乎就在那里 然而 当我第一次尝试这个时 我在启动时遇到了异常 运行 Visual Studio 2013 创建新的 Web API 项目 使用包管理器 运行 Instal
  • NSIncrementalStore 的简单英语解释

    我一直看到NSIncrementalStore当我一直在研究使用核心数据与 Web 服务交互的最佳方式时 这个问题就出现了 看完之后德鲁 克劳福德的文章 http sealedabstract com code nsincrementals