我有一个视图控制器,离开堆栈后,泄漏仪器显示内存泄漏。在阅读了大量有关the NSDateFormatter bug的帖子,并执行了setDateFormat 'Z' workaround之后,我仍然在泄漏内存(根据Instruments)。iOS:NSDateFormatter内存泄漏/ viewDidUnload
在我的头:
NSDateFormatter *dfm;
...
@property (nonatomic, retain) NSDateFormatter *dfm;
我在执行:
@synthesize dfm;
...
- (void) viewDidLoad {
[super viewDidLoad];
dfm = [[NSDateFormatter alloc] init];
[self.dfm setDateFormat:@"h:mma Z"]; // leaks with & without this line
}
...
- (void)viewDidUnload {
//SOLUTION: This method was never being called. Needed to use dealloc, per the answer below.
[dfm release];
self.dfm = nil;
[super viewDidUnload];
}
任何立场不正确的?我在这个类中唯一使用dfm的地方是在几个地方调用stringFromDate
来返回使用UILabels的自释放字符串。
在此先感谢。
确实 - 所以我学到了=)。我已经添加了'viewDidUnload'问题标题,以便人们在遇到此问题时可能会发现此帖。 – Chazbot 2011-04-10 16:42:49