【发布时间】:2012-04-20 21:47:13
【问题描述】:
我在 NSDateFormatter 中看到了很多关于内存泄漏的问题/答案,但似乎没有一个可以帮助我确定是什么导致我的应用程序中的内存泄漏。这是我的代码:
- (id)init
{
if ((self = [super init]))
{
items = [[NSMutableArray alloc] init];
events = [[NSMutableArray alloc] init];
buffer = [[NSMutableData alloc] init];
format = [[NSDateFormatter alloc] init];
lastFromDate = @"";
}
return self;
}
- (void)presentingDatesFrom:(NSDate *)fromDate to:(NSDate *)toDate delegate:(id<KalDataSourceCallbacks>)delegate
{
[format setTimeZone:[NSTimeZone systemTimeZone]];
[format setDateFormat:@"MM/dd/yyyy"];
NSString *stringFromDate = [NSString stringWithString:[format stringFromDate:fromDate]];
NSString *stringToDate = [NSString stringWithString:[format stringFromDate:toDate]];
NSLog(@"From date: %@, To date: %@", stringFromDate, stringToDate);
[self didDatesChange:stringFromDate];
if (dataReady) {
[callback loadedDataSource:self];
return;
}
callback = delegate;
[self retrieveEventData:stringFromDate to:stringToDate];
}
- (void)dealloc
{
[items release];
[events release];
[buffer release];
[lastFromDate release];
[format release];
[super dealloc];
}
当我运行“Profile”->“Leaks”时,每次在线调用函数时都会发生内存泄漏
NSString *stringFromDate = [NSString stringWithString:[format stringFromDate:fromDate]];
有人能解释一下可能发生了什么吗? 谢谢,迈克
【问题讨论】:
-
请发布 didDatesChange: 和 retrieveEventData:to:。由于您的问题中的代码没有明显的泄漏,我的猜测是其中一种方法内部的不平衡保留。
-
如果泄漏发生在其中一个函数中,为什么 Instruments 会将我指向格式化 NSDate 的行?
标签: iphone objective-c nsdateformatter