问题标签 [nsincrementalstore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
195 浏览

ios - 如何使用 AFIncrementalStore 与 NSManagedObject 绑定

我正在寻找有关如何使用AFIncrementalStore. 我需要知道如何一步一步地实现它。

如果我理解正确AFIncrementalStore,它是用于从服务器获取数据和映射数据模型的层。我对吗?

因此,我需要映射到本地模型的 URL 很少。它们都使用 GET 请求。

例如base_url/api/categories

我得到这个字符串作为回应:

那么,如何使用 AFIncrementalStore 将我的本地数据库与这些数据绑定?此外,如果您可以看到响应字符串中存在与使用相关的关系。用户数组将包含与音乐会用户相对应的 id。所以我认为第二个问题是如何指出该模型必须具有关系。

0 投票
1 回答
1410 浏览

objective-c - NSIncrementalStore:从这个 NSManagedObjectContext 的协调器无法访问对象的持久存储

我正在尝试实现一个 NSIncrementalStore,它将通过 RPC API 访问服务器。它需要在本地缓存所有数据,因此我首先创建了一个 NSIncrementalStore 以使用另一个用作缓存的核心数据堆栈。

所以首先我设置元数据并设置缓存将使用的核心数据堆栈。缓存 SQL 文件是 store 初始化时传入的 URL:

对实体的简单请求的执行请求类似于以下代码。本质上,我只是接受请求,将其包装为 FetchRequest 并在缓存核心数据堆栈上执行请求。然后,我在调用上下文中使用返回的 objectID 创建对象:

当我尝试这个时,它会抛出异常并出现错误

<unknown>:0: error: -[] : Object's persistent store is not reachable from this NSManagedObjectContext's coordinator

在这条线上,NSManagedObject *managedObject = [context objectWithID:objectID];我不知道为什么会这样 - 这是苹果建议在文档中完成的确切方式!

这个错误似乎与跨线程访问上下文有关——但我没有这样做。关于这里有什么问题的任何建议?

0 投票
1 回答
54 浏览

core-data - 未调用 gainPermanentIDsForObjects

我试验 NSIncrementalStore 和文档说“首先,持久存储协调器调用 gainPermanentIDsForObjects:error: .. 然后,协调器调用 executeRequest:withContext:error:”

在我的情况下, obtainPermanentIDsForObjects 方法不会被调用,但 executeRequest 将使用 NSSaveRequestType 参数调用。问题是什么?

我创建了一个 NSManagedObject 并调用了 save 方法。

0 投票
0 回答
76 浏览

ios - 适用于 iOS 的 PFIncrementalStore ...有人让它工作吗?

有人在 PFIncremental 商店上取得过任何成功吗?这里:http ://sbonami.github.io/PFIncrementalStore/

当我加载示例项目,然后添加我的 Parse 键并启动应用程序时,我没有看到 Parse 中出现任何对象。此外,如果我实现自己的库测试,并尝试保存一个对象,它不会出现在 Parse 界面中。

任何帮助或见解将不胜感激。如果我可以提供更多信息,请告诉我。

提前致谢。

0 投票
1 回答
106 浏览

core-data - NSIncrementalStore 中的 newObjectIDForEntity

我已经开始使用 NSIncrementalStore。当你处理一个获取请求时,你首先必须处理谓词来获取你的内部引用对象。然后将这些转换为 objectID,然后询问上下文以获取相应的 managedObjects。至少这是我对可用文档的解释。

"newObjectIDForEntity" 也用于获取永久对象 ID(请参阅 gainPermanentIDsForObjects)

我想知道“newObjectIDForEntity”的作用。它是为同一个对象创建一个新实例,还是每次在内部创建一个新对象?我的意思是:如果我创建一个新的托管对象然后获取该对象,我将为同一个对象调用两次“newObjectIDForEntity”。核心数据现在认为有 1 或 2 个对象吗?

0 投票
0 回答
49 浏览

ios - NSIncrementalStore 加载元数据

当然,这是一个愚蠢的问题,但这是一个理解单词而不是意思的例子。

NSIncrementalStore 中 loadMetaData 函数的文档指出:

任何基于文件的 NSIncrementalStore 子类都必须能够处理使用指向零长度文件的 URL 进行初始化。这可作为在指定位置构建新存储的指示,并允许使用该存储的应用程序在已知位置安全地创建预订文件。

您应该如何处理零长度文件?您将如何识别零长度文件?您不应该只在指定的 NSURL 位置创建(数据库)文件或目录吗?

0 投票
1 回答
59 浏览

objective-c - NSIncrementalStoreNode updateWithValues 的“values”参数是否只需要更改的值或数据的完整新副本?

我打电话给:

在 NSIncrementalStore 子类中,以便使用更新的 NSManagedObject 值更新缓存。我的问题与values论点有关。我只需要放入更新的属性或数据的全新副本吗?

文档中的描述说:“更新值和版本以反映保存到外部存储或从外部存储加载的新数据。// 值字典与初始化程序的格式相同。”

我不清楚“反映新数据”的“值”是指仅更新的属性还是对象中的所有属性。

0 投票
1 回答
89 浏览

ios - NSIncrementalStore 一对一关系故障立即触发(急切加载?)

我注意到,即使我没有访问该关系,当执行获取请求时,一对一关系的错误也会立即触发。特别是,方法中的断点newValueForRelationship:forObjectWithID:withContext:error:会立即在 NSIncrementalStore 子类中命中。

https://developer.apple.com/library/mac/documentation/CoreData/Reference/NSIncrementalStore_Class/index.html#//apple_ref/occ/instm/NSIncrementalStore/newValueForRelationship:forObjectWithID:withContext:error

断点仅在我按预期访问多个关系(延迟加载)时才被命中。

有人可以帮忙吗?

0 投票
1 回答
146 浏览

ios - NSIncrementalStore 调用 NSSaveChangesRequest.deletedObjects == nil

我正在编写一个NSIncrementalStore由 REST 服务支持的程序。它适用于 POST 和 GETing 对象,但是在删除它们时我遇到以下问题:

  1. 测试电话[context delete: object];
  2. context.deletedObjects包含object(正如人们所期望的那样)
  3. 测试电话[context save: &error];
  4. iOS用;调用NSIncrementalStores 当呼叫同时到达和时,我的代码无法找出要从服务器中删除哪些对象。executeRequest:withContext:error:NSSaveChangesRequestcontext.deletedObjects == nilsaveChangesRequest.deletedObjects == nil

deletedObjects设置nil在对上下文的save调用和它的调用之间怎么会发生NSIncrementalStore

UPDATE可能的原因:object.objectID仍然是temporaryID以下save. 目前NSIncrementalStore正在从中获取对象 ID,newObjectIDForEntity:referenceObject:并且 Apple文档中的描述似乎还不适用:

插入托管对象上下文的新对象被分配一个临时 ID,一旦对象被保存到持久存储,该临时 ID 将替换为永久 ID。

0 投票
1 回答
118 浏览

ios - 获取可作为 NSIncrementalStore 访问的 Core Data 持久 NSSQLiteStoreType 存储

Apple Core Data文档说 iOS 的内置 SQLite Store ( NSSQLiteStoreType) 是一个增量存储。

但是,如果我创建这种类型的商店(通过将其添加到 a NSPersistentStoreCoordinator),它显然作为(iOS 内部)类的实例存在NSSQLCore[store isKindOfClass: NSIncrementalStore.class]返回NO.

是否可以从 iOS 获取一个可以作为NSIncrementalStore.

如果可能的话,我想为自定义添加缓存NSIncrementalStore并为此目的使用包装的 SQLite 存储(直截了当)。