J'essaye d'écrire une fonction simple en utilisant Objective C qui accepte un objet NSDate et retourne un objet NSDate qui contient la même valeur de date mais qui a supprimé des composants de temps la date.Suppression de composants temporels d'un objet NSDate à l'aide de Objective C/Cocoa
Par exemple, si je devais passer un NSDate avec une valeur de '2010-10-12 09:29:34' la fonction reviendrait 2010-10-12 00:00:00.
La fonction J'utilise semble fonctionner correctement. Cependant, lorsque je teste l'application iPhone que je développe avec Instruments, il signale une fuite de mémoire dans la fonction que j'utilise. Jetez un oeil à ma fonction ci-dessous. Où y a-t-il une fuite de mémoire? Y a-t-il un meilleur moyen d'atteindre la fonctionnalité que je désire?
Merci d'avance !!
-(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];
}
Il convient de noter que NSDate lui-même n'a aucune notion de composants est un objet qui représente un point dans le temps. Une date lisible par un humain n'a pas de signification inhérente sans temps et lieu. Même si le temps est implicitement quelque temps pendant cette date dans cette locale. – uchuugaka