问题标签 [corestore]
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.
swift - 无法使用 CoreStore 添加记录
我正在尝试在 CoreStore 中保存记录,但它似乎没有做任何事情。
我忘了包括我的模型:
它将打印出架构,我知道我进入了该loadRoutine
函数,但似乎没有其他任何事情发生。
ios - 是否可以使用偏移/分页从 CoreStore 获取记录?
我想使用 UITableview 实现分页类型的 ui,这样一旦用户在滚动时最后记录,我想使用 CoreStore 从本地数据库中获取下一组记录。
CoreStore在查询时是否支持这种功能?
ios - 将 CoreStore SQLiteStore 移动到另一个位置
在我使用 CoreStore 5.3 的应用程序中,我试图将本地 sqlite 存储移动到另一个位置,以便能够从应用程序扩展访问数据库。虽然使用 FileManager.default.moveItem(at: oldURL, to: newURL) 移动当前 3 个文件(MyApp.sqlite、MyApp.sqlite-wal 和 MyApp.sqlite-shm)的文件工作正常,但我不认为它是这样做是个好主意...
我知道 NSPersistentStoreCoordinator 上有 migratePersistentStore 的功能(https://developer.apple.com/documentation/coredata/nspersistentstorecoordinator/1468927-migratepersistentstore)
所以你通常会这样做,例如:
...因为这也会移动所有关联的文件。
但是,显然这种方法没有在 CoreStore 中公开。除了作为 DataStack 的内部属性的 persistentStoreCoordinator 之外,访问它的唯一方法是通过 unsafeContext(),在 dataStack 已经设置之后,但这会导致更多麻烦,因为上下文会尝试执行 save() ,因为持久性存储已被移动,这将不起作用。
CoreStore 还有其他方法吗?
swift - Swift5 CoreStore CoreStore.fetchAll() 抛出错误
我正在使用CoreStore
CoreData 的 WrapperSwift 5
使用获取所有数据。
低于错误。
⚠️ [CoreStore: Error] From.swift:155 applyToFetchRequest(_:context:applyAffectedStores:) ↪︎ 尝试执行获取但找不到实体的任何持久存储 (CoreStore.CoreStoreError) .persistentStoreNotFound (.errorDomain = "com. corestore.error"; .errorCode = 8; .entity = Post;)
ios - CoreStore 映射关系同时导入唯一对象
我发现我认为是好的库CoreStore,因为我们看到它们提供了导入和唯一导入,以及在可导入协议后面的映射功能,我们需要在NSManagedObject
对象子类中实现这些协议才能设置属性。
我的问题是有文档如何正确映射关系?例如,如果我有一个Person
和多个地址,我是否需要使用 Person NSManagedObject 的相同 didInsert 函数并执行如下异步事务:
我是否需要异步或同步以及其他问题如何触发即使所有关系都已导入或 CoreStore 自动执行,或者我可能走错了路,还有其他一些漂亮的解决方案。
谢谢
正如马丁建议的那样,我添加了类似的内容:
看起来它对我有用,但是 .= 抛出:
ios - CoreStore 在更新数据模型时插入数组作为关系对象
我有下一个代码来更新我的锻炼:
但是正如我所见,我在执行异步块时插入了肌肉,但是当我执行 fetchExisting 时,没有在异步块中添加肌肉。
编辑:
当我发现在锻炼.肌肉中缺少反向关系时,现在我添加了它,看起来 CoreStore 正确更新锻炼实体。
但是现在如果我多次调用函数,我还有另一个问题:
- 第一次通话
addMuscleGroups([1, 2, 3, 4, 5]...) 打印(unwrappedWorkout.muscles) [1, 2, 3, 4, 5]
第二次调用 addMuscleGroups([1, 2, 3, 4, 5, 6, 7]...)
打印(unwrappedWorkout.muscles)[6, 7]
(为了简化示例,我使用了 1、2、3、4、5、6、7 数字),但实际上有 MusclEntity 对象
因此,由于 addMuscleGroups 函数的第二次调用 unwrappedWorkout.muscles 有两个肌肉对象而不是 7 个。
我添加了短视频:
ios - CoreStore 在上下文中创建对象而不保存到数据库
我想解决下一个问题:
我想NSManagedObject
在上下文中使用一些并在运行时更改一些属性,但不告诉 SQLite 它的任何更改。
NSManagedObject
当我点击保存按钮或类似按钮时,我只想保存到数据库。
正如我从源代码演示中发现的那样,我们需要为此目的使用 beginUnsafe (也许我错了)
现在,当我尝试更新workout.muscles = []
应用程序时出现错误:
我的问题是我们如何在不保存的情况下创建对象,以及当我们修改某些属性并避免这种崩溃时如何保存它。
ios - CoreStore 离线模式同步功能
我从服务器导入唯一对象,同时创建离线本地对象,iOSLocalId
它是我的离线本地 ID。
我将此函数用于唯一导入:
我的问题是我可以指定几个唯一ID,例如
我需要这个来绑定两个对象。本地(离线创建)和从服务器接收到的相同。
所以接下来的工作流程是:
- 例如,当我们离线工作时, Cerate 本地对象仅包含
iOSLocalId
但不包含服务器 ID - 当连接显示为在线时,将本地对象推送到服务器。
- 当 API 返回服务器上创建的对象时,同步本地和服务器对象。
在这种情况下,我需要以某种方式告诉 CoreStore 我有两个唯一 ID,一个是本地的,该服务器也传回给我,一个是同一对象的服务器 ID。
但也许还有另一种方法。
当然,我可以编写自己的服务来搜索已经存在的本地对象并更新它们。
也许我可以使用一些这样的功能:
但是正如我所说的我每次找到服务器ID都需要更新,但是在离线同步的情况下,我也有本地ID,然后存在确定唯一ID的问题。