我是否需要在此代码示例中释放NSCalendar对象?或者这会影响到最后一行代码是否返回从“gregorian”变量派生的newDate的事实?我是否需要在此代码示例中释放NSCalendar对象?
#import "NSDateHelper.h"
@implementation NSDate(NSDateHelper)
-(NSDate *) setHour:(NSInteger)hour andMinute:(NSInteger)minute {
// Get Calendar for Existing Date
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
NSDateComponents *components = [gregorian components: NSUIntegerMax fromDate: self];
// Set Hour and Minute
[components setHour: hour];
[components setMinute: minute];
[components setSecond: 00];
// Create resultant Date
NSDate *newDate = [gregorian dateFromComponents: components];
// Clean Up
[gregorian release]; // TODO: Do I release this here, or will it affect the return value not being valid?
return newDate;
}
@end
你不应该使用'NSUIntegerMax'作为dateFlags。计算所有不必要的东西需要更长的时间,而不仅仅是年月和日。 – 2011-03-19 00:55:40