我正在 iOS 中使用 NSCache,我在 .h 文件中有以下代码用于缓存:
NSCache *_cache;
我将从 url 下载的图像添加到 .m 中的缓存:
-(void)cacheFromURL:(NSURL*)url
{ [_cache setCountLimit:50];
UIImage* newImage = [_cache objectForKey:url.description];
if( !newImage )
{
NSError *err = nil;
if(url!=Nil)
{
newImage=[UIImage imageWithData:[NSData dataWithContentsOfURL:url options:0 error:&err]];
}
if( newImage )
{
[_cache setValue:newImage forKey:url.description];
}
else
{
NSLog( @"UIImageView:LoadImage Failed: %@", err );
}
if(_cache==Nil)
{
NSLog(@"nil");
}
else
{
NSLog(@"cache is not nil");
}
}
}
但是我每次都得到 nil 缓存。我可以在日志中看到下载过程。 为什么我的缓存为空?
最佳答案
您需要创建/初始化 NSCache
对象,然后才能添加和反对它。您还需要使用 setObject:forKey:
添加对象
关于iphone - 获取 NULL 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11133071/