CoreData sqllite文件大小与存储在其中的图像与总iCloud空间之间的差异



我决定尝试将图像作为二进制文件保存到CoreData中。它们只是最大从2k到90k的小图像,我可以说我已经丢弃了许多代码行,尤其是处理iCloud问题的代码。

考虑到 CoreData 是我使用 NSPersistentStoreUbiquitousContentNameKey 等属性放入 iCloud 中的唯一存储,我注意到我的 sqlite 文件实际上大小约为 1.6mb。虽然应用程序本身占用的总iCloud空间,如iOS设置所示,接近34mb,但我周围没有任何其他文档。

我已经将NSSQLiteManualVacuumOption作为选项,所以我想知道是什么原因导致所有这些空间被占用。可能是事务日志?

您应该使用外部数据引用。

每次更改存储图像的实体时,您都会写出所有图像数据。使用外部数据引用,图像数据将存储为单独的文件,一旦不再引用,就可以将其删除。

最新更新