为什么在NSLog中引用变量会隐藏xcode中的实例变量?

时间:2016-12-17 17:20:57

标签: objective-c xcode

我有一小段代码:

.h文件:

@property (nonatomic) double *avgSpeed;

.m文件:

double avgSpeed = totalSpeed/ timercount;
NSLog(@"avg speed: @%f", avgSpeed);

NSLog行给了我一个错误" avgSpeed的本地声明隐藏了实例变量",我很确定这意味着我声明了一个与已经声明的变量同名的变量在相同的范围内。

然而,我很困惑为什么我会遇到这个问题,因为我并没有试图宣布另一个" avgSpeed"变量,我试图引用它,并在NSLog中打印它。有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:1)

如果您想使用该属性,请写

self.avgSpeed = totalSpeed / timercount;
NSLog(@"avg speed: @%f", self.avgSpeed);

或者如果您想使用没有合成setter的背景ivar

_avgSpeed = totalSpeed / timercount;
NSLog(@"avg speed: @%f", _avgSpeed);