我正在创建一个简单的应用程序,这段代码一直给我提出问题。 这是我的财产。 在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]);
答案 0 :(得分:2)
_calculator.startingUnit = @"FPS";
这是不使用您的媒体资源。这是对实例变量的直接访问,因此永远不会调用您的延迟加载代码。
如果您定义属性,始终通过属性访问它们:
self.calculator.startingUnit = @"FPS";
否则,您可能也在使用实例变量。唯一的例外是访问器方法本身,或init或dealloc方法(在某些情况下)。