方法调用完成后,方法中声明的变量会被删除吗?即,如果我有方法“someMethod”并且每次调用它时我想从堆栈属性返回不同的 NSString,该方法将返回堆栈上的下一个对象,还是会保持返回第一个索引,因为 x 在方法调用结束。我知道在函数调用后是否会删除 C 中的变量,在目标 c 中是否相同?对变量 x 使用单独的属性会出现这个问题吗?谢谢
(Double) someMethod{
int x;
[self.stack objectAtIndex:x];
x++;
}
阅读评论后,我尝试创建一个属性来替换 x,这就是我写的内容,但我收到一条错误警告,指出““_location”的本地声明隐藏实例变量”这是什么意思?
@property (nonatomic) int location;
@synthesize location=_location;
-(int) location{
if(!_location){
int _location = 0;
//warning is here
return _location;
}
_location++;
return _location;
}
(Double) someMethod{
int x;
[self.stack objectAtIndex:self.location];
x++;
}