ios - 如何使用来自url的文件名将图像缓存到文档文件夹

标签 ios objective-c

如何使用文件名将图像缓存到 Caches 文件夹中。我有一个来自互联网的 Collection View 加载图像 url。所以我想在 Caches 文件夹中缓存文件名为 url 的图像。提前致谢

最佳答案

下载图像并将其保存到缓存文件夹非常简单:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{

    NSString *urlString = @"http://URL";

     NSData *webData= [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];

    if (webData) {
        // save in the Filesystem
        NSString* cachesDirectory =  NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        NSString *file = [cachesDirectory stringByAppendingPathComponent:[urlString lastPathComponent]];
        [webData writeToFile:file atomically:YES];
    }
});

但是当您显示图像时,ios 使用惰性图像解压缩,这会在主线程上产生延迟。为了避免这些延迟,有很棒的库:

SDWebImage

FastImageCache

我建议您使用其中之一。

关于ios - 如何使用来自url的文件名将图像缓存到文档文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24613516/

相关文章:

iOS 动态类型 - 设置最小字体大小

ios - Swift : Thread 1: EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, 子代码=0x0) 发生错误

ios - UML 类图中的 Objective C block

objective-c - 将一个类中声明的变量传递给另一个类

ios - selectedBackgroundView隐藏UIView

ios - 检测连接的音频设备 iOS

ios - 快速访问不同 View Controller 之间的 UI 属性

ios - 通过在它们上方移动另一个 UIView 来影响所有 UIView

ios - AVMetadataFaceObject 精度

ios - 关闭通知中心时更新标签