组件不工作的Swift NSCalendarUnit设置值

组件不工作的Swift NSCalendarUnit设置值,swift,ios7,ios8,nscalendar,Swift,Ios7,Ios8,Nscalendar,我正在尝试创建一些日期对象 var gregorian:NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!; var unit : NSCalendarUnit = (NSCalendarUnit.YearCalendarUnit|NSCalendarUnit.MonthCalendarUnit|NSCalendarUnit.DayCalendarUnit|NSCalendarUnit.Hour

我正在尝试创建一些日期对象

var gregorian:NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!;

var unit : NSCalendarUnit = (NSCalendarUnit.YearCalendarUnit|NSCalendarUnit.MonthCalendarUnit|NSCalendarUnit.DayCalendarUnit|NSCalendarUnit.HourCalendarUnit|NSCalendarUnit.MinuteCalendarUnit);
var interval:Double = Double(i)*60*60*24;
var tomorrow:NSDate = NSDate().dateByAddingTimeInterval(interval);

var comps:NSDateComponents = gregorian.components(unit, fromDate: tomorrow);

comps.setValue(17, forComponent: NSCalendarUnit.HourCalendarUnit);
var five_tomorrow : NSDate = gregorian.dateFromComponents(comps)!;

comps.setValue(19, forComponent: NSCalendarUnit.HourCalendarUnit);
var seven_tomorrow : NSDate = gregorian.dateFromComponents(comps)!;

comps.setValue(21, forComponent: NSCalendarUnit.HourCalendarUnit);
var nine_tomorrow : NSDate = gregorian.dateFromComponents(comps)!;
这在我的iOS8手机上似乎工作正常。但在我的iOS7设备上,我打印日期,并获得所有日期的
2015-03-03 19:33:00 MST
。有人猜测为什么会发生这种情况吗

编辑:
我想做的是把日期定在明天下午5:00、7:00、9:00和10:00左右,以设置本地通知。我不太在乎时间

它仅在ios 8.0及更高版本上使用

@availability(iOS, introduced=8.0)
func setValue(value: Int, forComponent unit: NSCalendarUnit)

我正试图建立一个火伴。晚上7点是我拍摄的目标,但我想早上7点也可以。如果它解决了您的问题,我不应该回答两次。NSCalendar的可能重复。currentCalendar()方法为我抛出了一个错误。[\u NSCopyOnWriteCalendarWrapper dateWithEra:year:month:day:hour:minute:second:nanosecond:]:未识别的选择器发送到实例0x1782273c0