Я предполагаю, что viewControllers
- это свойство, которое сохраняет соответствующее значение.
@property (nonatomic, retain) NSArray *viewControllers;
Основываясь на этом, давайте проанализируем счет сохранения для вашего куска кода:
// controllers -> retainCount == 0
NSMutableArray *controllers = [[NSMutableArray alloc] init]; // controllers (alloc) -> retainCount++ == +1
for (unsigned i = 0; i < kNumberOfPages; i++) {
[controllers addObject:[NSNull null]];
}
self.viewControllers = controllers; // controllers (retained by viewControllers) -> retainCount++ == +2
[controllers release]; // controllers (released) == retainCount-- == +1
Позже ...
- (void)dealloc {
[self.viewControllers release]; // controllers (released) -> retainCount-- == 0 (zero == no leak == no crash by over-release)
...
}