Управление памятью с помощью pushViewController

Я все еще не очень хорошо разбираюсь в методах управления памятью, и мне было интересно, может ли кто-нибудь объяснить мне это странное поведение. Рассмотрим эти 3 фрагмента кода, которые я тестировал:

DofView* dofView = [[DofView alloc] initWithNibName:@"DofView" bundle:nil];
NSLog(@"dof retain count = %d", [dofView retainCount]); 

Этот журнал записывает: сохранить счетчик = 1. Это нормально.

DofView* dofView = [[DofView alloc] initWithNibName:@"DofView" bundle:nil];
[dofView release];
NSLog(@"dof retain count = %d", [dofView retainCount]); 

В этом журнале: сохранить счетчик = 1. Разве это не должно быть 0 ??

DofView* dofView = [[DofView alloc] initWithNibName:@"DofView" bundle:nil];
[self.navigationController pushViewController:dofView animated:YES];
NSLog(@"dof retian count = %d", [dofView retainCount]);

Это журналы: сохранить счетчик = 5. Я понятия не имею, почему его пять?

Может ли кто-нибудь вообще пролить свет на это? Меня беспокоит, что я занимаю память каждый раз, когда создаю новое представление.

Спасибо!

14
задан rich 10 May 2011 в 11:24
поделиться