Проблема выпуска коллекции IBOutlet - PullRequest
0 голосов
/ 19 июля 2011

У меня есть массив для коллекции IBOutlet

.h

@interface UpisiRezultat : UIViewController {
    NSArray *buttons;
}

@property (nonatomic, retain) IBOutletCollection(UIButton) NSArray *buttons;

.m

@synthesize buttons;

- (void)viewDidLoad
{
    [self setValue:[UIFont fontWithName:@"NeverSayNever" size:22] forKeyPath:@"buttons.font"];
    [super viewDidLoad];
}

- (void)viewDidUnload
{
    buttons = nil;
}

- (void)dealloc
{
    [buttons release]; --> Error
    [super dealloc];
}

Почему моя программа падает, когда у меня есть [кнопки выпуска]; в деаллоке? Без этого он не рухнет ...

Ответы [ 3 ]

2 голосов
/ 19 июля 2011

обновленный (Dec1) код и проверено.

- (void)dealloc {

    self.buttons = nil;

    [super dealloc];
}

вы не должны выпускать их.

http://www.bobmccune.com/2011/01/31/using-ios-4s-iboutletcollection/

0 голосов
/ 19 июля 2011

Поскольку кнопками является NSArray, и он явно сохраняется, он должен быть освобожден и затем установлен в nil в -dealloc.

См. Ответ Даррена по адресу: Настройки IBOutlets для нулевого значения в dealloc См. Пример IBOutletCollection по адресу: http://www.bobmccune.com/2011/01/31/using-ios-4s-iboutletcollection/.

0 голосов
/ 19 июля 2011

Если вы установили соединение с вашими кнопками в Интерфейсном Разработчике, это ваше мнение владеет им и освобождает его.

...