このサンプル コードを考慮します (キャッシュは NSCache のインスタンスです)。
- (id)objFromCache
{
if ([cache objectForKey:@"myObject"] == nil)
[cache setObject:[self generateObject] forKey:@"myObject"];
return [cache objectForKey:@"myObject"];
}
このコードを信頼する必要がありますか? objectForKey:@"myObject"
つまり、直後に nil を返すことはありsetObject:forKey:@"myObject"
ますか? もしそうなら、私は誰に変わりますif
かwhile
?
この状況を処理する最善の方法は何ですか? ありがとう!