2

このサンプル コードを考慮します (キャッシュは NSCache のインスタンスです)。

- (id)objFromCache
{
    if ([cache objectForKey:@"myObject"] == nil)
        [cache setObject:[self generateObject] forKey:@"myObject"];

    return [cache objectForKey:@"myObject"];
}

このコードを信頼する必要がありますか? objectForKey:@"myObject"つまり、直後に nil を返すことはありsetObject:forKey:@"myObject"ますか? もしそうなら、私は誰に変わりますifwhile

この状況を処理する最善の方法は何ですか? ありがとう!

4

1 に答える 1