gpt4 book ai didi

ios - CKReference 的 CloudKit Delete Self 选项不起作用

转载 作者:搜寻专家 更新时间:2023-10-30 22:00:46 24 4
gpt4 key购买 nike

是否有人有使用 CloudKit 选项为 DeleteSelf 获取 CKReference 的经验?这是我从文档中得到的:

DeleteSelf

The delete action for referenced records. Deleting a record also deletes any records containing CKReference objects that point to that record. The deletion of the additional records may trigger a cascade deletion of more records. The deletions are asynchronous in the default zone and immediate in a custom zone.

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

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

我知道它被指定为删除自身,因为在仪表板中它显示了选中的选项: delete self checked off

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

更新 ~ 04/07/2016

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

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

最佳答案

这很可能是权限问题。

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

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

关于ios - CKReference 的 CloudKit Delete Self 选项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36464483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com