从Documents目录加载UIImage并缓存它

时间:2013-11-07 18:01:35

标签: ios objective-c caching

我在Documents目录中有一个UIImage。 我想加载它并将其缓存在内存中。

要创建和缓存UIImage,我们应该使用+ (UIImage *)imageNamed:(NSString *)name方法,但这种方法的问题是图像应该在应用程序包中。当我使用其他方法initWithContentsOfFile时,......图像不会被缓存。

如何从文档目录加载UIImage并缓存它?

1 个答案:

答案 0 :(得分:1)

您可以向AppDelegate添加NSCache,并使用以下方法:

- (UIImage *)cachedImageWithFilePath:(NSString *)path {
    // first check for a hit in the cache
    UIImage *cachedImage = [_imageCache objectForKey:path];
    if (cachedImage)
      return cachedImage;

    // load the image from disk and add to the cache
    UIImage *newImage = [[UIImage alloc] initWithContentsOfFile:path];
    [_imageCache setObject:newImage forKey:path];
    return newImage;
}

编辑:

关于NSCacheApple Documentation

的文章