【发布时间】:2015-09-06 03:23:41
【问题描述】:
我正在使用 CloudKit 构建一个 iOS 应用程序。
它应该允许用户在云中添加、编辑和删除Products。用户可以在文件夹中组织这些。这些文件夹只是 cloudkit 中的其他记录类型。用户可以使用的文件夹级别没有限制,因为任何文件夹都可以在其父文件夹中保存一个CKReference。我的应用程序中的所有 CloudKit 通信都发生在一个专用的 CloudKitController 类中
这一切都有效,但一段时间后停止工作,原因不明。
当我测试我的应用程序时,我什至不使用多级深度的用户文件夹。但是,在使用一段时间(最多一周)后,所有已删除的记录似乎都会重新出现在 CloudKit 上。对此有几点说明:
- 当我重置 CloudKit 仪表板并重新开始时,它运行良好。未更改代码。
- 显然,随着应用程序的开发,我不断地编辑我的代码。但是,我通常不会编辑代码中要存储在 CloudKit 中的数据类型。当我这样做时,这个问题不会在之后直接出现
- CloudKit 仪表板中的更改(例如添加数据类型)不会导致此问题
- 我没有像在核心数据中那样在本地存储任何记录。只要我使用它们,它们就只能坐在单例中
- 当我转到 CloudKit 仪表板时,产品记录类型显示它具有例如13 个实例。有时它太糟糕了,我的应用实际上加载了 100 多个。当我转到 recordZone 时我也可以看到它们,但 RecordType 仍然说它只有 13 个实例
- 在 CloudKit Dashboard 中删除这些记录只会让它们消失一段时间。当我重新加载页面时,它们会再次弹出。
这种情况已经有一段时间了,我已经检查了我的代码、Apple 库和谷歌无数次,但我无法弄清楚是什么导致了这个问题。
问题: 有人知道如何克服这个问题吗?正如我所说,我已经遇到这个问题好几个星期了,重置我的 CloudKit 仪表板只能“治愈”它长达一周,然后它再次弹出。如果可以帮助您回答我的问题,我也很乐意发布任何代码。我最初没有发布任何代码,因为我不知道是什么代码可能导致这种情况。
任何答案将不胜感激
【问题讨论】:
-
我遇到了完全相同的问题。我一直在尝试删除我的一种记录类型,但一段时间后记录仍会恢复,这是有问题的,因为记录类型实际上已更改(cloudkit 显示的记录类型实际上省略了旧版本和旧版本之间不常见的任何字段)新的)。多么令人困惑。
-
很高兴知道至少我不是唯一一个。在您的情况下,您在应用程序或数据库中执行特定任务后是否会出现此问题?
-
我一直在搞乱一堆,所以我不确定。无论如何,我完全重置了数据库,从那以后我就一直在努力。但是,如果已经保存了很多数据(到目前为止,我保存的所有数据都不重要并且可以清除),我将不愿意这样做。
-
如果您还没有,请尝试查看 Apple 的开发者论坛,按此顺序在此处发布并提交错误。