Obj-C Setters返回null

时间:2014-01-06 06:07:10

标签: ios objective-c properties

我正在创建一个简单的应用程序,这段代码一直给我提出问题。 这是我的财产。 在ConverisonCalculator.h中

@property (strong, nonatomic)NSString *startingUnit;

在Viewcontroller.m中我使用此代码,每次我NSLog它我得到(null)

_calculator.startingUnit = @"FPS";

这也是我对象的懒惰实例化。

- (ConversionCalculator *)calculator{
if (!_calculator) _calculator = [[ConversionCalculator alloc]init];
return _calculator; }

我希望这足以让你回答我的问题。我也没有覆盖默认的setter。

这是我的记录。

NSLog(@"%@", [_calculator startingUnit]);

1 个答案:

答案 0 :(得分:2)

_calculator.startingUnit = @"FPS";

这是使用您的媒体资源。这是对实例变量的直接访问,因此永远不会调用您的延迟加载代码。

如果您定义属性,始终通过属性访问它们:

self.calculator.startingUnit = @"FPS";

否则,您可能也在使用实例变量。唯一的例外是访问器方法本身,或init或dealloc方法(在某些情况下)。