2010-11-17 14 views

Odpowiedz

4

Powinieneś używać metody initWithCoder: podczas pracy z obiektami, które zostały zarchiwizowane. Na przykład, gdy specjalnie używasz NSKeyedUnarchiver do tworzenia zarchiwizowanych obiektów lub gdy potrzebujesz dodać niestandardowy kod inicjujący do obiektów pochodzących z pliku XIB.

+1

Pytam dlatego, że stworzyliśmy podklasa UIScrollView, chciałbym ustawić go pozycję w XIb i zgarnij te informacje i wykorzystywać je ustawić do podklasy, czy użyłbym initWithCoder: czegoś takiego? – cgossain

9

Tak, jeśli używasz niestandardowej klasy w IB, obiekty te są tworzone za pomocą metody initWithCode:. Tak więc, w klasie byłoby zastąpić:

-(id) initWithCoder:(NSCoder*)aDecoder { 
    if (! (self = [super initWithCoder:aDecoder])) 
     return nil; 

    // object has been created from IB... do initialization stuff here 

    return self; 
} 
Powiązane problemy