Cocoa Singleton und gemeinsam genutzte Instanzen

Warum hat Apple seine Klassen beispielsweise nicht als reines Singleton, obwohl Sie mit der UIApplication-Klasse Zugriff auf das UIApplication-Singleton haben, z. B .:

UIApplication *sharedApplication = [UIApplication sharedApplication];

Nothing verhindert, dass Sie eine UIApplication-Instanz explizit instanziieren, z. B .:

UIApplication *newApplication = [[UIApplication alloc] init];

Das Ergebnis ist jedoch eine Laufzeitausnahme. Die Ausnahme besagt eindeutig, dass immer nur eine Instanz der UIApplication-Klasse aktiv sein kann.

Warum sollten Sie dann kein reines Singleton haben, indem Sie dieselbe Instanz im Standardinitialisierer zurückgeben?

Ich stelle diese Frage, um beim Erstellen eines Singletons für mein Projekt Klarheit zu erlangen und festzustellen, welcher Weg besser ist.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage