Выпуск iVar IBOutlet против собственности IBOutlet - PullRequest
1 голос
/ 18 мая 2011

Кто-нибудь может проверить, что мой метод 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];

1 Ответ

4 голосов
/ 18 мая 2011

Если вы подключите эти три элемента через Interface Builder, вам НЕОБХОДИМО освободить их. Розетки по умолчанию сохраняются. KVC (Key Value Coding) используется для настройки торговых точек. Это означает, что loadFromNib будет вызывать setValue:withKey для каждой установленной вами розетки. При этом используется @property и его метод установки, но если ни один из них не установлен (как в вашем случае), он сохраняет объект по умолчанию.

...