【发布时间】:2011-07-06 07:39:10
【问题描述】:
-(NSDate *)dateFromDate:(NSDate *)inDate withNewTime:(NSDateComponents *)inTimeComponents {
NSCalendarUnit unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *newComponents = [self.sysCalendar components:unitFlags fromDate:inDate];
[newComponents setHour:[inTimeComponents hour]];
[newComponents setMinute:[inTimeComponents minute]];
return [self.sysCalendar dateFromComponents:newComponents];
}
我不明白为什么会泄漏。这不会返回一个自动重新分配的对象吗?它按预期工作,但是当我在仪器上运行时,似乎日期对象正在泄漏,并且堆栈表明它是在此处创建的。
sysCalendar 是具有以下 getter 的属性:
-(NSCalendar *)sysCalendar {
if (sysCalendar != nil) {
return sysCalendar;
}
self.sysCalendar = [NSCalendar currentCalendar];
return sysCalendar;
}
【问题讨论】:
-
请注意,那种类型的吸气剂是危险的,因为它是一种可能导致突变的吸气剂。
-
我想了解更多关于您所说的内容。我已经看到它以多种方式完成,但我不确定这些变化的好处/缺陷。非常感谢您的意见。
标签: iphone objective-c nscalendar