Ваш второй вариант также более корректен в отношении управления памятью, поскольку он высвобождает все выделенные ресурсы, прежде чем сделать его нулевым.
Но вместо того, чтобы давать ему пустой массив, который сам по себе является объектом с автоматическим выпуском, таким как [массив NSArray], вы можете назначить nil
.
- (void)cleanCurrentTabbar {
for (id ctrl in self.tabViewController.customizableViewControllers) {
[ctrl release];
}
for (id ctrl in self.tabViewController.viewControllers) {
[ctrl release];
}
self.tabViewController.viewControllers = nil;
self.tabViewController.customizableViewControllers = nil;
}
Также, как сказал Джеймс Вебстер в своем комментарии к удару:
«Вы можете или не должны освобождать в зависимости от типа свойства viewControllers и customizableViewControllers, которые есть»
Надеюсь, это поможет вам.