我决定尝试将图像保存为CoreData作为二进制文件。 它们只是最小2k到90k的小图像,我可以说我已经删除了许多代码行,特别是那些处理iCloud问题的代码。
考虑到CoreData是我使用NSPersistentStoreUbiquitousContentNameKey等属性放入iCloud的唯一存储,我注意到我的sqlite文件实际上大小约为1.6mb。虽然应用程序本身占用的总iCloud空间(如iOS设置中所示)接近34mb,但我没有任何其他文档。
我已经将NSSQLiteManualVacuumOption作为选项,所以我想知道导致所有这些空间的原因。可能是交易日志?
答案 0 :(得分:0)
您应该使用外部数据引用。
每次更改存储图像的实体时,都会写出所有图像数据。使用外部数据引用时,图像数据将作为单独的文件存储,并且可以在不再引用后删除。