Aufruf - mehrmals in Objective-C

7

Was passiert, wenn Sie mehrmals an einem Objekt anrufen, gibt es versteckte Nebenwirkungen? Können Sie davon ausgehen, dass kein zusätzlicher Speicher zugeordnet ist? Wäre etwas gegen eine solche Idee?

    
CipherCom 01.01.2010, 20:26
quelle

2 Antworten

31

Der Aufruf von -init mehrmals ist nicht definiert, nicht unterstützt und wird zu Fehlern, Abstürzen und anderem unerwartetem Verhalten führen.

Viele Klassen - NSString , NSArray und NSDictionary zum Beispiel - ordnen nichts zu, wenn die Methode +alloc aufgerufen wird. Erst wenn eine der verschiedenen -init* -Methoden aufgerufen wird, hat das Objekt genügend Kontext, um die effizientesten Mittel zu finden, um alles zu tun, was Sie fragen.

    
bbum 01.01.2010, 20:36
quelle
3

Eine Sache, die ich zu Bills Antwort hinzufügen würde, ist, dass Sie, wenn Sie Ihre eigenen -init -Methoden schreiben, defensiv codieren und nicht davon ausgehen, dass sie nur einmal aufgerufen werden.

    
NSResponder 02.01.2010 02:43
quelle

Tags und Links