作为 obj c 的新手,我遇到了我正在开发的日历应用程序的问题(从表面上大致复制了本机应用程序)。在夏令时时,我无法处理选择错误日期(前 1 天)的按钮。在寻找解决方案但没有找到解决方案后,我想出了以下代码。有经验的编码员能否告诉我是否有更简洁或更有效的方法来做到这一点。这段代码对我来说有点笨拙。任何建设性的想法将不胜感激。
- (IBAction)dateButtonPressed:(id)sender; {
NSDateComponents *offset = [NSDateComponents new];
offset.day = [self.dayButtons indexOfObject:sender];
NSDate *selectedDate = [self.calendar dateByAddingComponents:offset toDate:self.beginningDate options:0];
NSTimeZone *currentZone = [NSTimeZone localTimeZone];
if ([currentZone isDaylightSavingTimeForDate:selectedDate]) {
offset.hour = +1;
selectedDate = [self.calendar dateByAddingComponents:offset toDate:self.beginningDate options:0];
}
self.calendarView.selectedDate = selectedDate;
NSLog(@"pressed %@",selectedDate);
}