ben*_*art 5 cloudkit swift-data
不幸的是,使用 CloudKit 时,该.unique
属性不可用于 SwiftData 模型属性。是否有最佳实践为我自己的模型设置这样的约束?
对于本地数据库,在创建和插入新模型之前获取(和过滤)模型是相当简单的。
但是如何防止来自其他设备的模型重复 - 即,在从 CloudKit 导入时将重复的模型与本地现有的模型合并,然后将它们插入到本地 SwiftData DB 中?
不幸的是,在 CloudKit 中拥有独特的属性是不可能的。根据苹果的文档:
@Attribute - The framework synchronizes changes concurrently and at opportune times, which means CloudKit is unable to enforce the unique property option.
Run Code Online (Sandbox Code Playgroud)
我建议手动删除每个设备上的重复项。您可以通过创建后台任务调度程序来处理它,该调度程序将负责从数据库中删除实体。这不是完美的解决方案,但它应该有效。无论如何,您将不得不处理 UI 与重复项之间的冲突。这仅取决于您如何解决它。例如:显示最新数据,或显示错误...等
归档时间: |
|
查看次数: |
241 次 |
最近记录: |