我在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缓存。我可以在日志中看到下载过程。 为什么我得到空缓存?
答案 0 :(得分:1)
您需要创建/初始化NSCache
对象,然后才能添加和对象。您还需要使用setObject:forKey:
答案 1 :(得分:0)
您必须先初始化NSCache
对象:
_cache = [[NSCache alloc] init];