1

我正在使用最新版本的 SDWebImage (SDImageCache),并通过代码保存图像

[[SDImageCache sharedImageCache] storeImage:image forKey:@"1"];

并且我确定图像已成功保存,因为我检查了我的应用程序文件夹,其中存在图像。

我正在使用

UIImage *image = [[SDImageCache sharedImageCache] imageFromMemoryCacheForKey:@"1"];

读出我的图像,但图像对象返回 nil。问题可能是什么?谢谢!

4

1 回答 1

3

当您使用:

- (void)storeImage:(UIImage *)image forKey:(NSString *)key

图像也保存在磁盘缓存中。

实现类似于:

- (void)storeImage:(UIImage *)image forKey:(NSString *)key
{
    [self storeImage:image imageData:nil forKey:key toDisk:YES];
}

因此,如果您需要从磁盘中检索图像,则可以使用以下方法:

- (void)queryDiskCacheForKey:(NSString *)key done:(void (^)(UIImage *image, SDImageCacheType cacheType))doneBlock;

默认磁盘缓存类型为SDImageCacheTypeNone,因此如果您需要指定缓存类型,请使用SDImageCacheType枚举。

enum SDImageCacheType
{
    /**
* The image wasn't available the SDWebImage caches, but was downloaded from the web.
*/
    SDImageCacheTypeNone = 0,
    /**
* The image was obtained from the disk cache.
*/
    SDImageCacheTypeDisk,
    /**
* The image was obtained from the disk cache.
*/
    SDImageCacheTypeMemory
};

希望,它会帮助你。

于 2013-02-07T12:59:52.310 回答