0

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

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

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

4

1 回答 1

1

您可以将一个添加NSCache到您的 AppDelegate,并使用如下方法:

- (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;
}

编辑:

关于NSCache的文章,Apple 文档

于 2013-11-07T18:10:49.647 回答