0

我在 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");
    }
}

}

但我每次都得到零缓存。我可以在日志中看到下载过程。为什么我得到空缓存?

4

2 回答 2

1

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

于 2012-06-21T07:26:22.847 回答
0

你必须先初始化你的NSCache对象:

_cache = [[NSCache alloc] init];
于 2012-06-21T07:03:32.410 回答