2010-10-11 11 views

Odpowiedz

3

Zwalnianie obiektów ma swoją własną odpowiedzialność, dlatego należy zwolnić kontroler widoku samodzielnie, albo po wywołaniu presentModalViewController, lub jakiś czas później (nie zalecane)

Na przykład:

MyController *controller = [[MyController alloc] init]; 

[self presentModalViewController:controller animated:YES]; 

// "controller" is automatically retained, so you can call release right away  

[controller release]; 

Wywołanie dismissModalViewController później automatycznie zwolni zatrzymany kontroler.

+0

Phillip - dzięki. Ten wiersz kodu: [[Mycontroller alloc] initwithNib .... jaka jest wartość zatrzymania na tym obiekcie - 1 lub 2? – GuybrushThreepwood

+0

To będzie jeden, ale to nie ma znaczenia. Pomyśl o własności obiektu, a nie zatrzymaj się. Zawsze ponosisz odpowiedzialność za zwolnienie wszystkiego, co zostało przez Ciebie przydzielone lub zachowane. Zawsze. –

+0

W powyższym przykładzie, dlaczego "kontroler" jest automatycznie zachowywany? Jestem zdezorientowany, jak można przydzielić kontroler w pierwszym wierszu, a następnie natychmiast go zwolnić - czy nie pozostawia go z zatrzymaną liczbą równą 0, co spowoduje jej opróżnienie? Dziękuję Ci. – GuybrushThreepwood

Powiązane problemy