获取NULL缓存

时间:2012-06-21 06:59:13

标签: iphone objective-c ios

我在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缓存。我可以在日志中看到下载过程。 为什么我得到空缓存?

2 个答案:

答案 0 :(得分:1)

您需要创建/初始化NSCache对象,然后才能添加和对象。您还需要使用setObject:forKey:

添加对象

答案 1 :(得分:0)

您必须先初始化NSCache对象:

_cache = [[NSCache alloc] init];