13.5 Die Redundanz reduzieren

Die beiden applicationDidXxx:-Implementierungen in CurrentApp sind nahezu identisch. In beiden Fällen habe ich die Überprüfung wieder eingefügt, ob der delegate auf unseren Selektor reagiert. Ich schütze mich so vor der Übergabe eines nicht implementierten Methodennamens.

if ([self.delegate
        respondsToSelector:@selector(applicationDidXxx:)] ) {
    self.name = [notification.userInfo objectForKey:@"NSApplicationName"];
    [self.delegate applicationDidXxx:self];
}

Wir müssen nur sicherstellen, das Xxx im einen Fall Launch und im anderen Terminate lautet. Wir könnten die notication an eine Hilfsmethode weitergeben und die aufzurufende Methode basierend auf dem name der notication auswählen:

Dictionaries/HelloApplication14/CurrentApp.m ...

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.