【发布时间】:2014-01-07 04:17:25
【问题描述】:
我使用以下内容作为我的一个类中的属性的获取器:
- (NSString *)version
{
if (_version == nil) {
_version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
}
return _version;
}
这很好用。但是,当我对 int 属性尝试相同的操作时,我显然会得到一个错误,因为 int 永远不会为零。解决这个问题的最佳方法是什么?
- (int)numberOfDays
{
if (_numberOfDays == nil) {
// relatively memory intense calculation that works out numberOfDays:
_numberOfDays = X;
}
return _numberOfDays;
}
【问题讨论】:
-
要么使用一个你知道不会出现的值(可能是 -1?),或者更清楚地说,只使用一个 BOOL 字段(例如
_numberOfDaysComputed)。 -
dispatch_once(&token, ^{ hard_computation(); }); -
@H2CO3:这应该是一个答案。
标签: objective-c class properties int null