Soll ich super in + initialisieren?

8

Muss ich das tun:

%Vor%

Das heißt, wenn ich initialize von der Elternklasse ( NSObject ) in meinem App-Delegierten übertreibe, muss ich sicherstellen, dass die Super-Implementierung auch aufgerufen wird? Oder gilt das nicht, da dies keine Instanzmethode ist?

Wie "sicher" ist diese Methode? Ich implementiere die iNotify-Bibliothek und die Dokumentation schlägt vor, die Methode zu dieser Methode hinzuzufügen, aber ich habe sie vorher für nichts in der App verwendet und möchte auch wissen, ob sie möglicherweise unerwartet mit etwas anderem kollidieren kann?

>     
johnbakers 19.07.2012, 07:07
quelle

2 Antworten

7

Wenn Sie Unterklassen dieser Klasse haben, rufen Sie Ihren Code besser mit der Anweisung dispatch_once auf, da jede Unterklasse diese Methode erneut aufruft

%Vor%

Siehe diesen Blogbeitrag von Mike Ash für Details.

    
Denis Mikhaylov 19.07.2012, 07:27
quelle
0
  

Die Laufzeit sendet initialisiert an jede Klasse in einem Programm kurz zuvor   Die Klasse oder jede Klasse, die von ihr erbt, wird zuerst gesendet   Nachricht aus dem Programm. Die Laufzeit sendet die Initialisierung   Nachricht an die Klassen in einer thread-sicheren Art und Weise. Superklassen erhalten dies   Nachricht vor ihren Unterklassen. Die Superklassenimplementierung kann sein   mehrfach aufgerufen, wenn Unterklassen nicht initialize-the implementieren   Laufzeit ruft die geerbte Implementierung auf - oder if-Unterklassen   explizit [super initialize] aufrufen. Wenn du dich schützen willst   Wenn Sie mehrere Male ausgeführt werden, können Sie Ihre Implementierung strukturieren   in diesen Zeilen:

Ссылка

So machen beide

%Vor%

und

%Vor%

gültig.

    
hfossli 26.05.2014 14:05
quelle

Tags und Links