Zeitkomponenten mit Objective C / Cocoa von einem NSDate-Objekt entfernen

Ich versuche, mit Objective C eine einfache Funktion zu schreiben, die ein NSDate-Objekt akzeptiert und ein NSDate-Objekt zurückgibt, das denselben Datumswert enthält, jedoch alle Zeitkomponenten aus dem Datum entfernt hat.

Wenn ich beispielsweise ein NSDate mit dem Wert '2010-10-12 09:29:34' übergeben würde, würde die Funktion 2010-10-12 00: 00: 00 zurückgeben.

Die Funktion, die ich verwende, scheint ordnungsgemäß zu funktionieren. Beim Testen der iPhone-App, die ich mit Instruments entwickle, wird jedoch gemeldet, dass die von mir verwendete Funktion einen Speicherverlust aufweist. Schauen Sie sich unten meine Funktion an. Wo ist ein Speicherverlust? Gibt es einen besseren Weg, um die von mir gewünschte Funktionalität zu erreichen?

Danke im Voraus!

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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage