Zugriff zu Variablen innerhalb einer Klasse

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Zugriff zu Variablen innerhalb einer Klasse

    Hallo Community,
    ich habe anscheinend ein simples (Verständnis)problem mit Variablen innerhalb von Objekten. Um meinem Fenster ein Hintergrundbild zu verleihen
    habe ich eine eigene Klasse erstellt die von NSView abstammt. In einem Forum habe ich dann die beiden folgenden Methoden gefunden, die
    überschrieben werden sollen:

    Quellcode

    1. - (void)awakeFromNib{
    2. myImage = [[NSImage alloc] init....
    3. [self setNeedsDisplay:YES];
    4. }
    5. - (void)drawRect:(NSRect)rect
    6. {
    7. NSSize isize = [myImage size];
    8. //... }

    Wo muss ich myImage als NSImage deklarieren ? Wenn ich dies innerhalb der ersten Methode mache ist es in der zweiten nicht verfügbar.
    Als Property könnte man es natürlich deklarieren aber das ist wohl kaum sinnvoll oder ?
    Ich hoffe ihr könnt mir helfen.
    LG
    chuck

  • ramo schrieb:

    Ich würde es im Interface machen ? Und warum keine @property ?

    Quellcode

    1. NSImage *myImage;
    Okay ich habe es nun als @property im Interface definiert, das ist wohl der beste Weg. Ich bekomme jedoch in meiner Methode die Warnung:

    Assigning retained Object to unsafe property

    Das liegt wohl am ARC bzw. an meiner Klasse. Muss ich beim Interface noch etwas beachten ? getter und setter habe ich hinzugefügt.
  • In welchem Forum wird denn solch ein Code verbrochen?

    1. Du greifst nicht unmitelbar auf Instanzvariablen zu. Daher self.image = …
    2. Damit hat sich auch das setNeedsDisplay erledigt, weil das in den Setter gehört.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?