如何从捆绑包中访问<application_home> / Library / Caches?

时间:2016-08-07 18:36:25

标签: ios caching uiimage nsbundle

我的应用从服务器下载图片。我想将这些图像保存到Caches文件夹,然后使用UIImage(named:...访问它们以进行内存缓存。 UIImage(named: "fileURL", in: NSBundle.mainBundle, compatibleWith: nil)会找到Caches文件夹还是需要创建不同的包?

1 个答案:

答案 0 :(得分:6)

您不希望将包用于缓存文件夹。您应该使用NSFileManager来获取caches文件夹的路径。例如,在Swift 2中:

let fileURL = try! NSFileManager.defaultManager()
    .URLForDirectory(.CachesDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: false)
    .URLByAppendingPathComponent("test.jpg")

let image = UIImage(contentsOfFile: fileURL.path!)

或Swift 3:

let fileURL = try! FileManager.default
    .url(for: .cachesDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
    .appendingPathComponent("test.jpg")

let image = UIImage(contentsOfFile: fileURL.path)