我正在使用CloudKit构建iOS应用程序。
它应该允许用户在云中添加,编辑和删除Products
。用户可以在文件夹中组织这些内容。这些文件夹只是cloudkit中的其他记录类型。用户可以使用的文件夹级别没有限制,因为任何文件夹只能将CKReference
保存到其父文件夹中。我的应用程序中的所有CloudKit通信都发生在专用的CloudKitController类
这一切都有效,但一段时间后停止工作没有明确的理由。
当我测试我的应用时,我甚至不会使用多级深层的文件夹。但是,使用它一段时间(最多一周)后,所有已删除的记录似乎都会重新出现在CloudKit上。关于此的几点说明:
现在已经这样了一段时间了,我已经多次查看了我的代码,Apple Library和Google,但我无法弄清楚导致这个问题的原因。
问题: 有谁知道如何克服这个问题?就像我说的那样,我已经遇到了几个星期,重置我的CloudKit仪表板只能“治愈”它长达一个星期,然后它再次弹出。我也非常乐意发布任何代码,如果这有助于你回答我的问题。我最初没有发布任何代码,因为我不知道代码可能会导致这个问题。
任何答案都将受到高度赞赏
答案 0 :(得分:2)
Apple回复了一个错误报告,我已经提出这个问题应该通过iOS 9解决。到目前为止这似乎是正确的,因为这个问题还没有再次发生,但请告诉我这是否仍然存在困扰某人。
答案 1 :(得分:1)
这可能是因为下面的仪表板跟踪表明Apple使用Tombstone技术在分布式数据库中复制删除。其中一个节点可能有一个错误或旧的软件版本,并且正在将逻辑删除假字段同步回系统,导致记录取消删除。或者你的代码正在做的事情是否意外地将这些删除的记录恢复了生命?解决方法是使用您自己的软删除布尔字段并查看其行为方式。
[{
"results": [{
"tombstone": false
"id": "NewItem",
"etag": "ibgs5bpj",
"recordType": "Items",
"fields": {
"name": "Malc",
"location": {
"latitude": 38.0,
"longitude": -122.0
}
},
"conflictLosersEtags": [],
"created": {
"timestamp": 1435514295943,
"user": "_0ac573ae502ca7ca9d763a84b27bc42a",
"device": "_2"
},
"modified": {
"timestamp": 1435514295943,
"user": "_0ac573ae502ca7ca9d763a84b27bc42a",
"device": "_2"
}
},
...
至于记录计数,是的,我的也是不准确的。