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

}

しかし、私は毎回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 に答える