8

有没有人有使用for aCloudKit选项的经验?这是我从文档中得到的:DeleteSelfCKReference

删除自己

引用记录的删除操作。删除记录还会删除包含指向该记录的 CKReference 对象的任何记录。额外记录的删除可能会触发更多记录的级联删除。删除在默认区域中是异步的,在自定义区域中是立即的。

所以我一直在对此进行测试,我已经使用和使用我的应用程序创建了多个CKReference对象。CloudKit Dashboard每当我使用我的应用程序执行此操作时,我都会像这样创建参考:

let reference:CKReference = CKReference(recordID: savedFriend.friendID, action: CKReferenceAction.DeleteSelf)

我知道它被分配为删除自身,因为在仪表板中它显示了已选中的选项: 删除自我检查

我一定是做错了什么,因为每当我去手动删除使用仪表板引用的记录,或者将我的应用程序设置为以编程方式删除它时,记录就会消失,但引用永远不会被删除。我想也许我应该等待它最终会发生,但几个小时后它仍然存在,就像它应该已经删除一样。这有点令人沮丧,因为我设计了一些代码假设这会起作用,现在我可以拥有一个浪费资源的应用程序,试图找到一个CKRecord不再存在的应用程序。我不应该依靠这个来工作吗?我很感激我能得到的任何帮助或建议。

更新 ~ 04/07/2016

我跳枪回到这里并发布了问题已自行解决的更新。我并不完全相信这个问题不会再次出现,所以我昨晚寻求一些保证。我创建了 5 个不同的对象CKRecords并创建了各种不同的CKReference对象以在整个数据库中引用它们。然后我继续CKReferenceAction.DeleteSelf在每个引用上设置选项(我通过仪表板手动尝试了两个,另外三个以编程方式完成)。无论如何,我等了几分钟,然后删除了引用的记录……十分钟后,引用仍然存在。我又等了 5 到 10 分钟,他们还在那里,所以我就去睡觉了,假设他们肯定会在早上离开,对吧?错误的!十二小时后,CKReference条目仍然存在并且引用的记录仍然消失了。我肯定在挠头,好像它是一个错误CloudKit。我应该提一下,我还注意到我的仪表板中有一些奇怪的行为。在过去的四天左右,在左下角,它一直在说它是“重新索引开发数据”,例如,这是一张图片: 重新索引通知

这会导致这个问题吗?有没有人熟悉这个问题并且知道解决这个问题的方法?任何建议,将不胜感激。我已经向 Apple 提交了错误报告。

4

1 回答 1

0

这很可能是权限问题。

仅当删除记录的用户对所有需要删除的记录具有“写入”权限时,级联删除才会起作用。所以在 CloudKit Dashboard 中,级联删除只对使用开发者的 iCloud 账户创建的记录有效。

在那里查看我的答案:https ://stackoverflow.com/a/38606004/6643055

于 2016-07-27T08:34:42.457 回答