Removendo componentes de tempo de um objeto NSDate usando o Objective C / Cocoa

Estou tentando escrever uma função simples usando o Objetivo C que aceita um objeto NSDate e retorna um objeto NSDate que contém o mesmo valor de data, mas removeu os componentes de tempo da data.

Por exemplo, se eu fosse passar um NSDate com o valor '2010-10-12 09:29:34', a função retornaria 2010-10-12 00:00:00.

A função que estou usando parece funcionar corretamente. No entanto, quando testo o aplicativo para iPhone que estou desenvolvendo com a Instruments, ele informa que há um vazamento de memória na função que estou usando. Dê uma olhada na minha função abaixo. Onde há um vazamento de memória? Existe uma maneira melhor de obter a funcionalidade que desejo?

Desde já, obrigado!!

-(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];
}