我一直在审查Apple文档和示例代码,以尝试确定管理IBOutlet内存的最佳方法.至少可以说,我有点困惑.
CurrentAddress示例代码将IBOutlets声明为属性:
@interface MapViewController : UIViewController <MKMapViewDelegate, MKReverseGeocoderDelegate>
{
MKMapView *mapView;
UIBarButtonItem *getAddressButton;
}
@property (nonatomic, retain) IBOutlet MKMapView *mapView;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *getAddressButton;
Run Code Online (Sandbox Code Playgroud)
大.这些是在dealloc中发布的:
- (void)dealloc
{
[mapView release];
[getAddressButton release];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
现在不应该将这些属性设置为分配?因为当设置为retain时,IBOutlet的保留计数将增加两次:一次加载nib时和另一次设置属性时?将这些属性设置为nil而不是在dealloc中释放不是更好吗?