Warum wird die init-Methode einer benutzerdefinierten nib-basierten Tabellenzelle nicht aufgerufen?

7

Ich habe eine nib-basierte Tabellenansichtszelle, die ich im Interface-Builder erstellt habe. Ich setze die Klasse der Tabellenansichtszelle auf FooTableViewCell , die sich von UITableViewCell erstreckt.

In FooTableViewCell überschreibe ich die init Methode wie folgt:

%Vor%

Ich habe jetzt erwartet, dass mein Name aufgerufen wird, wenn er instanziiert wird. Die Tabellenansicht wird jedoch angezeigt, aber die Methode wird nie aufgerufen.

Ich könnte das umgehen, aber ich würde es gerne vollständig verstehen und für mich ist es nicht klar, wie ein Objekt leben kann, ohne dass die Methode init aufgerufen wird.

    
Besi 04.08.2011, 13:19
quelle

2 Antworten

19

Beim Initialisieren geht die Initialisierung einen etwas anderen Pfad durch.

Anstatt dass -(id)init aufgerufen wird, wird -(id)initWithCoder:(NSCoder*)aDecoder aufgerufen. An diesem Punkt sind keine Ausgänge angeschlossen. Wenn Sie Zugang zu den Steckdosen benötigen, können Sie -(void)awakeFromNib überschreiben, die aufgerufen werden, nachdem das Objekt angeschlossen wurde.

    
Joshua Weinberg 04.08.2011, 13:25
quelle
6

Wenn das Objekt aus der NIB-Datei geladen wird, wird die Methode -awakeFromNib aufgerufen - Sie können Ihren Initialisierungscode dort eingeben:

%Vor%     
Vladimir 04.08.2011 13:21
quelle

Tags und Links