18.10 Lazy Initialization

Wir wollen nicht jedesmal eine CurrentApp-Instanz erzeugen, wenn wir die Views wechseln. CurrentApp soll nur beim Start instanziiert werden, wenn wir es brauchen.

Zwar werden die Getter und Setter für die currentApp-Eigenschaft für uns generiert, aber wir können sie natürlich überschreiben. Wir ändern die Getter-Methode currentApp so:

ChangingViews/HelloApplication45/MyWindowController.m

-(CurrentApp *) currentApp {
    if (!currentApp) {
        self.currentApp = [[CurrentApp alloc] init];
    }
    return currentApp;
}

Ist die Instanzvariable currentApp nicht nil, geben wir den Wert einfach zurück. Wenn sie noch nicht existiert, erzeugen wir eine Instanz von CurrentApp und weisen sie unserer Eigenschaft über den Setter zu.

Wir passen die

Get Cocoa-Programmierung now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.