Variablenumfang Ziel C

Werden in Methoden deklarierte Variablen nach dem Methodenaufruf gelöscht? Dh wenn ich die Methode "someMethod" habe und jedes Mal, wenn sie aufgerufen wird, möchte ich einen anderen NSString von einer Stapeleigenschaft zurückgeben, gibt die Methode das nächste Objekt auf dem Stapel zurück oder behält den ersten Index zurück, da x am gelöscht wird Ende des Methodenaufrufs. Ich weiß, wenn C, dass Variablen nach Funktionsaufrufen gelöscht werden, ist es das gleiche in Ziel c? Würde die Verwendung einer separaten Eigenschaft für die Variable x dieses Problem lösen? Vielen Dank

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

Nach dem Lesen der Kommentare habe ich versucht, eine Eigenschaft zum Ersetzen von x zu erstellen. Ich habe Folgendes geschrieben, aber es wird eine Fehlermeldung angezeigt, die besagt, dass die lokale Deklaration von _location die Instanzvariable verbirgt. Was bedeutet das?

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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage