CloudKit。是否可以清除Caches \ CloudKit \ Assets?

时间:2015-03-30 08:01:19

标签: ios cloudkit

我将图像存储在CKRecord中作为CKAsset。正因为如此,使用了大量的磁盘空间。从CKAsset获取图像后,是否可以在App \ Library \ Cashes \ CloudKit \ Assets中进行清理?

2 个答案:

答案 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,然后逐个删除它们。