Я получаю сообщили утечку памяти из инструментов на следующий код:утечка памяти при выделении и выпуская NSArray
NSArray *array = [[NSArray alloc] initWithObjects:@"Amount (oz):", @"Amount (ml):", @"Supplement:", nil];
self.fieldLabels = array;
[array release];
fieldLabels является Ивар, заявленный как:
NSArray *fieldLabels;
@property (nonatomic, retain) NSArray *fieldLabels;
отчеты инструменты следующее:
# Category Event Type Timestamp RefCt Address Size Responsible Library Responsible Caller
0 __NSArrayI Malloc 00:16.513.592 1 0x660bb40 32 InfantCare -[Supplemental_Amount viewDidLoad]
1 __NSArrayI Retain 00:16.513.595 2 0x660bb40 0 InfantCare -[Supplemental_Amount setFieldLabels:]
2 __NSArrayI Release 00:16.513.595 1 0x660bb40 0 InfantCare -[Supplemental_Amount viewDidLoad]
затем я изменил код так, вместо:
self.fieldLabels = array;
я поставил:
[self setFieldLabels:array];
Нет больше утечек (предположительно!). Почему это должно быть? Спасибо!
Это то, что я думал ... однако, почему инструменты сообщают об этом как утечку памяти? – DNewell
Возможно, утечка произойдет позже, когда объект, содержащий поле fieldLabels, будет выгружен. Вы выпускаете 'fieldLabels' везде, где должны? – MiKL