【发布时间】:2011-03-25 19:53:21
【问题描述】:
我收到 Instruments 报告的以下代码内存泄漏:
NSArray *array = [[NSArray alloc] initWithObjects:@"Amount (oz):", @"Amount (ml):", @"Supplement:", nil];
self.fieldLabels = array;
[array release];
fieldLabels 是一个 iVar,声明为:
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];
没有更多的泄漏(据说!)。为什么会这样? 谢谢!
【问题讨论】:
标签: ios memory-leaks nsarray