Guten Abend,
bitte sagt mir, welchen Denkfehler ich mache:
Ich habe im Interface einer Klasse eine Variable deklariert:
@interface MeineKlasse : NSObject {
int x;
}
und ebenfalls im Interface Methoden angegeben. Dabei ist die erste vom Interface Builder mit "write classfiles" automatisch geschrieben, die zweite habe ich eingetragen:
@interface MeineKlasse : NSObject {
int x;
}
- (IBAction)Button: (id)sender;
- (void) eigeneMethode;
@end
Hier mein Problem:
Wenn ich über den Button die Methode (IBAction)Button aufrufe und darin die Variable x verwende, z.B.
@Implementation MeineKlasse
- (IBAction)Button: (id)sender{
x = 99;
NSLog (@"%i", x);
}
...
dann wird in der Console natürlich '99' ausgegeben.
Wenn ich jetzt die eigene Methode "eigeneMethode" aufrufe und die Variable erneut verwende, wird über NSLog der Wert '0' ausgegeben:
- (IBAction)Button: (id)sender{
x = 99
MeineKlasse *MeineInstanz;
MeineInstanz = [MeineKlasse alloc];
MeineInstanz = [MeineInstanz init];
[MeineInstanz eigeneMethode];
}
- (void)eigeneMethode {
NSLog (@"%i", x);
}
Ich dachte, im Interface deklarierte Variablen wären für alle in der gleichen Klasse deklarierten Methoden zugänglich?! Es gibt ja auch keine Fehlermeldung, dass die Variable x in der Funktion nicht deklariert wäre...
Aber warum ist Wert 0 und nicht wie vorher gesetzt 99?
Vielen Dank für Eure Hilfe,
Moritz
bitte sagt mir, welchen Denkfehler ich mache:
Ich habe im Interface einer Klasse eine Variable deklariert:
@interface MeineKlasse : NSObject {
int x;
}
und ebenfalls im Interface Methoden angegeben. Dabei ist die erste vom Interface Builder mit "write classfiles" automatisch geschrieben, die zweite habe ich eingetragen:
@interface MeineKlasse : NSObject {
int x;
}
- (IBAction)Button: (id)sender;
- (void) eigeneMethode;
@end
Hier mein Problem:
Wenn ich über den Button die Methode (IBAction)Button aufrufe und darin die Variable x verwende, z.B.
@Implementation MeineKlasse
- (IBAction)Button: (id)sender{
x = 99;
NSLog (@"%i", x);
}
...
dann wird in der Console natürlich '99' ausgegeben.
Wenn ich jetzt die eigene Methode "eigeneMethode" aufrufe und die Variable erneut verwende, wird über NSLog der Wert '0' ausgegeben:
- (IBAction)Button: (id)sender{
x = 99
MeineKlasse *MeineInstanz;
MeineInstanz = [MeineKlasse alloc];
MeineInstanz = [MeineInstanz init];
[MeineInstanz eigeneMethode];
}
- (void)eigeneMethode {
NSLog (@"%i", x);
}
Ich dachte, im Interface deklarierte Variablen wären für alle in der gleichen Klasse deklarierten Methoden zugänglich?! Es gibt ja auch keine Fehlermeldung, dass die Variable x in der Funktion nicht deklariert wäre...
Aber warum ist Wert 0 und nicht wie vorher gesetzt 99?
Vielen Dank für Eure Hilfe,
Moritz