Objective c 为什么在NSLog中引用变量会在xcode中隐藏实例变量?
我有一段代码: .h文件:Objective c 为什么在NSLog中引用变量会在xcode中隐藏实例变量?,objective-c,xcode,Objective C,Xcode,我有一段代码: .h文件: @property (nonatomic) double *avgSpeed; .m文件: double avgSpeed = totalSpeed/ timercount; NSLog(@"avg speed: @%f", avgSpeed); NSLog行给了我一个错误,“avgSpeed的本地声明隐藏了实例变量”,我很确定这意味着我在同一范围内声明了一个与已声明变量同名的变量 然而,我不明白为什么会出现这个问题,因为我并没有试图声明另一个“avgSpeed”
@property (nonatomic) double *avgSpeed;
.m文件:
double avgSpeed = totalSpeed/ timercount;
NSLog(@"avg speed: @%f", avgSpeed);
NSLog行给了我一个错误,“avgSpeed的本地声明隐藏了实例变量”,我很确定这意味着我在同一范围内声明了一个与已声明变量同名的变量
然而,我不明白为什么会出现这个问题,因为我并没有试图声明另一个“avgSpeed”变量,而是尝试引用它,并在NSLog中打印它。有人知道为什么会发生这种情况吗?如果要使用该属性,请编写
self.avgSpeed = totalSpeed / timercount;
NSLog(@"avg speed: @%f", self.avgSpeed);
或者如果您想在不使用合成设定器的情况下使用支持ivar
_avgSpeed = totalSpeed / timercount;
NSLog(@"avg speed: @%f", _avgSpeed);
您是否有属性或ivar
avgSpeed
?是的,我有一个属性,哪一行是错误,double avgSpeed=totalSpeed/timercount代码>或NSLog(@“平均速度:@%f”,平均速度)代码>?“因为我没有试图声明另一个“avgSpeed”变量-实际上,您正在声明另一个avgSpeed
变量。就在你发布的代码中:double avgSpeed=totalSpeed/timercount代码>。