iphone objective-c nsdate

iphone - Eliminar componentes de tiempo de un objeto NSDate usando Objective C/Cocoa



objective-c (2)

Prueba esto:

-(NSDate *)dateWithOutTime:(NSDate *)datDate { if( datDate == nil ) { datDate = [NSDate date]; } NSDateComponents* comps = [[NSCalendar currentCalendar] components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:datDate]; return [[NSCalendar currentCalendar] dateFromComponents:comps]; }

Estoy tratando de escribir una función simple utilizando Objective C que acepte un objeto NSDate y devuelva un objeto NSDate que contenga el mismo valor de fecha pero que haya eliminado cualquier componente de tiempo de la fecha.

Por ejemplo, si tuviera que pasar un NSDate con un valor de ''2010-10-12 09:29:34'' la función regresaría 2010-10-12 00:00:00.

La función que estoy usando parece funcionar correctamente. Sin embargo, cuando pruebo la aplicación para iPhone que estoy desarrollando con Instruments, informa que hay una pérdida de memoria en la función que estoy usando. Echa un vistazo a mi función a continuación. ¿Dónde hay una pérdida de memoria? ¿Hay una mejor manera de lograr la funcionalidad que deseo?

¡¡Gracias por adelantado!!

-(NSDate *)dateWithOutTime:(NSDate *)datDate { if (datDate == nil) { datDate = [NSDate date]; } unsigned int intFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]; NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease]; components = [calendar components:intFlags fromDate:datDate]; return [calendar dateFromComponents:components]; }


-(NSDate *)dateWithOutTime:(NSDate *)datDate{ if( datDate == nil ) { datDate = [NSDate date]; } NSDateComponents* comps = [[NSCalendar currentCalendar] components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit fromDate:datDate]; [comps setHour:00]; [comps setMinute:00]; [comps setSecond:00]; [comps setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; return [[NSCalendar currentCalendar] dateFromComponents:comps]; }