Что происходит после того, как viewController помещается в другой viewController


Мне просто было интересно во время программирования. У меня есть rootViewController, который создает экземпляр childViewController. Этот childVC толкается на мой rootViewController через [self.navigationController pushViewController: childVC] от другого childViewController (скажем childVC2). Теперь мне было интересно, что происходит с моим экземпляром childVC2. Выходит ли она на свободу? Потому что при возврате из childVC в childVC2 я создаю новый экземпляр childVC2 и помещаю его в свой rootViewController. Очевидно, что я не использую более ранний экземпляр childVC2, так что же происходит с ним или haw могу ли я вручную освободить его?

1 3

1 ответ:

Да, если вы выделяете ViewController, вы должны освободить его .. толчок увеличит количество ссылок на 1, поэтому вы должны быть уверены, что вы используете его для декодирования количества ссылок .. и для создания экземпляра определите его внутри .h И когда создаешь его, делай вот так

if(yourViewController)
  [yourViewContoller release];

yourViewController = [yourViewControllerClass alloc] init];

Другой вариант - сделать его авторелизным, и в этом случае вы не несете ответственности за освобождение ViewController

yourViewController = [yourViewControllerClass alloc] init]autorelease];