Alcance de las variables Objetivo C

¿Las variables declaradas en los métodos se borran después de que se realiza la llamada al método? Es decir, si tengo el método "someMethod" y cada vez que se llama quiero devolver un NSString diferente de una propiedad de pila, el método devolverá el siguiente objeto en la pila o mantendrá devuelto el primer índice ya que x se borra en la Fin de la llamada al método. Sé si C que las variables se borran después de las llamadas a funciones, ¿es lo mismo en el objetivo c? ¿Usaría una propiedad separada para la variable x algún problema? Gracias

(Double) someMethod{
int x;
[self.stack objectAtIndex:x];
x++;
}

Después de leer los comentarios, intenté crear una propiedad para reemplazar x y esto es lo que escribí, pero aparece una advertencia de error que indica que "declaración local de" _location "oculta la variable de instancia" ¿Qué significa esto?

@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++;
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta