我将图像存储在CKRecord中作为CKAsset。正因为如此,使用了大量的磁盘空间。从CKAsset获取图像后,是否可以在App \ Library \ Cashes \ CloudKit \ Assets中进行清理?
答案 0 :(得分:1)
无法通过CloudKit API清理这些文件。
CloudKit将为您管理该空间,并应定期清理下载的资产或发生磁盘空间不足通知。您的应用程序不应该担心它。
答案 1 :(得分:1)
我遇到了同样的问题,实际上我找到了一个解决方法:
let fileManager = NSFileManager.defaultManager()
let cachePath = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true) as [String]
let filePath = "\(cachePath[0])/CloudKit/Assets"
do {
let contents = try fileManager.contentsOfDirectoryAtPath(filePath)
for file in contents {
try fileManager.removeItemAtPath("\(filePath)/\(file)")
print("Deleted: \(filePath)/\(file)") //Optional
}
} catch {
print("Errors!")
}
本质上,我手动导航到CloudKit / Asset文件夹,并检索存储在那里的所有CKAsset,然后逐个删除它们。