3

在我的应用程序中,我在 Core Data sqlite 中有这个简单的注释 <-->> 照片关系,照片是带有“允许外部存储”的二进制数据,删除规则是注释级联照片,照片无效注释。当我尝试添加一些带有照片的笔记然后删除它们时,它在 iPhone Simulator 目录中看起来很好(外部照片文件被删除)。但是,当我在我的 iPhone 上使用 iCloud 同步进行尝试时,我的应用程序的 iCloud 存储大小只会在我添加照片时不断增加,但在我删除笔记或照片后永远不会减少 - 有什么想法吗?

4

1 回答 1

4

您删除了照片,但交易日志仍然存在。Core Data 的 iCloud 集成基于事务——任何时候你保存更改,都会创建一个新的事务日志。事务包括创建、更新或删除数据。事务日志一直存在,直到底层 iCloud 软件决定对其进行处理。

创建照片时,您会获得一个创建对象并包含照片数据的事务日志。当您删除照片时,您会得到一个交易日志,上面写着要删除该照片。第二个日志不会取消第一个日志,它会添加到它。现在您拥有两个事务日志,并且照片数据仍然存在。

在某些时候,底层的 iCloud 代码会合并日志,此时照片实际上应该会消失。但是,您无法做到这一点,您必须等到它在将来的某个日期发生。

于 2013-03-26T16:42:14.303 回答