Я все еще не очень хорошо разбираюсь в методах управления памятью, и мне было интересно, может ли кто-нибудь объяснить мне это странное поведение. Рассмотрим эти 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. Я понятия не имею, почему его пять?
Может ли кто-нибудь вообще пролить свет на это? Меня беспокоит, что я занимаю память каждый раз, когда создаю новое представление.
Спасибо!