IBOutlet
переменные экземпляра являются особым случаем. В iOS каждая переменная экземпляра IBOutlet сохраняется при загрузке NIB, поэтому вам необходимо освободить их самостоятельно.
На самом деле, вы должны быть особенно осторожны, чтобы освободить и обнулить эти IBOutlets в -viewDidUnload:
, иначе они будут вытекать при перезагрузке NIB.
Обратите внимание, что это на самом деле отличается от разработки под Mac OS X, где IBOutlets не сохраняются, если это не объект NIB верхнего уровня без родительского представления или окна.
По этой причине Apple теперь рекомендует выставлять IBOutlets через свойства, а не переменные экземпляра. Таким образом, право собственности на торговую точку четко определено.
@property (nonatomic, assign) IBOutlet UIButton* myButton;
@property (nonatomic, retain) IBOutlet NSObject* someObject;
myButton
не нужно было бы освобождать; someObject
должен быть освобожден. И в обоих случаях вы несете ответственность за очистку этих переменных в -viewDidUnload:
.