考虑这个示例代码(缓存是 NSCache 的一个实例):
- (id)objFromCache
{
if ([cache objectForKey:@"myObject"] == nil)
[cache setObject:[self generateObject] forKey:@"myObject"];
return [cache objectForKey:@"myObject"];
}
我应该相信这段代码吗?我的意思是,objectForKey:@"myObject"
之后会返回 nilsetObject:forKey:@"myObject"
吗?if
如果是这样,我应该换成while
谁?
处理这种情况的最佳方法是什么?谢谢!