我有一个返回给定日期的第一个工作日的小方法:
- (NSDate*) getFirstDayOfTheWeekFor:(NSDate*)date {
NSCalendar *gregorianCalender = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDate *firstDayDate; //This is 100.0% leaking acc. to the Performance Tool Leaks
unsigned yearAndWeek = NSYearCalendarUnit | NSWeekCalendarUnit;
// retrieve the components from the current date
NSDateComponents *compsCurrentDate = [[gregorianCalender components:yearAndWeek fromDate:date] autorelease];
[compsCurrentDate setWeekday:2]; // Monday
[compsCurrentDate setHour:0];
[compsCurrentDate setMinute:0];
[compsCurrentDate setSecond:0];
// make a date from the modfied components
firstDayDate = [[gregorianCalender dateFromComponents:compsCurrentDate] autorelease];
return firstDayDate;
}
如您所见,我已经在尝试自动释放此处使用的每个变量(这不是我开始追踪泄漏之前的样子)。最初我想在返回之前显式释放所有变量,除了“firstDayDate”变量,因为返回必须自动释放。
这些是性能工具发现的泄漏对象:
- icu::公历日历 (1.00 KB)
- icu::SimpleTimeZone (112 字节)
- __NSDate(16 字节)
- icu::NSNumberingSystem (128 字节)
- __NSCFCalendar (48 字节)
这个错误一定是完全愚蠢的,但我找不到。你能帮助我吗?谢谢你!!