Releasing iVar IBOutlet vs Property IBOutlet



任何人都可以验证我的 dealloc 方法是否正确吗?由于我的 titleLabel 和 checkImageView 被保留,所以我在 dealloc 中发布它们。但是,我不会发布mainImageView,doneButton和noteLabel,因为它们在实现过程中没有保留或分配。

@interface CheckMarkController : UIViewController  <UIAlertViewDelegate> {
IBOutlet UIImageView *mainImageView;
IBOutlet UIButton *doneButton;
IBOutlet UILabel *noteLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *titleLabel;
@property (nonatomic, retain) IBOutlet UIImageView *checkImageView;
@property (nonatomic, retain) Event *event;
@property (nonatomic, retain) Workout *workout;
@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
@end
- (void)dealloc {
//props
[titleLabel release];
[checkImageView release];
[event release];
[workout release];
[managedObjectContext release];
[super dealloc];

如果您通过界面生成器连接这三个项目,则需要释放它们。默认情况下会保留插座。KVC(键值编码)用于设置插座。这意味着loadFromNib将为您设置的每个插座呼叫setValue:withKey。这使用 @property 及其 setter 方法,但如果未设置任何方法(如您的情况),则默认情况下会保留对象。

相关内容

最新更新