He visto muchas preguntas/respuestas sobre fugas de memoria en NSDateFormatter, pero ninguna parece ayudarme a determinar qué causa la pérdida de memoria en mi aplicación. Aquí está mi código:Pérdida de memoria durante el uso de 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];
}
Cuando corro "Perfil" -> "fugas", consigo una pérdida de memoria cada vez que la función se llama en la línea
NSString *stringFromDate = [NSString stringWithString:[format stringFromDate:fromDate]];
Puede alguien explicar lo que podría ser pasando? Gracias, Mike
por favor, puesto didDatesChange: y retrieveEventDa ta: a :. ya que no hay fugas obvias en el código en su pregunta, mi suposición es una retención desequilibrada dentro de uno de esos métodos. – danh
¿por qué los instrumentos me señalarían a la línea donde se formateaba NSDate si las fugas estaban en una de esas funciones? –