6

.DeleteSelf 是如何真正起作用的?文档说:

当引用对象的操作设置为 CKReferenceActionDeleteSelf 时,引用的目标(即存储在引用的 recordID 属性中的记录)将成为源记录的所有者。删除目标(所有者)记录会删除其所有源记录。

但我的印象是删除目标并不总是删除源。当它保留在容器中时,客户端下载它,并期望引用指向某个地方,但在客户端上构建服务器数据存储的切片时目标不存在,这很烦人?

你如何看待这个案子?你忽略了那种记录?还是定期查找 CloudKit 存储,搜索损坏的记录以删除它们?

或者,与其删除一条记录,不如将它设置为处于已删除状态的属性,但将其保留在数据库中?

4

2 回答 2

2

我只是在这个问题上挣扎了一段时间,我想我会分享我的发现......

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

如果您需要删除不属于删除它们的用户的记录,您可以在安全性下为记录类型添加“写入”权限。

在此处输入图像描述

于 2016-07-27T07:06:05.407 回答
0

如果您通过 CloudKit Dashboard 删除,则必须等待切换记录类型以检查引用的另一端。您很可能在删除实际发生之前切换了。您可以使用网络选项卡上的 Safari 网络检查器来检查删除实际完成的时间。删除多条记录需要很长时间。

于 2016-04-05T13:44:36.353 回答