이 코드 예제에서 NSCalendar 개체를 릴리스해야합니까? 아니면 코드의 마지막 줄이 "그레고리 안"변수에서 파생 된 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로 사용하지 말아야합니다. 불필요한 것들을 계산하는 데는 단지 1 년에 한 달이 아닌 하루를 계산하는 것보다 훨씬 더 오래 걸릴 것입니다. ps에 대해서는 –