2015-03-03 74 views
1

我想创建一些日期对象。Swift NSCalendarUnit setValue forComponent不工作

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点,9点日期,下午10:00明天设置一个本地通知。我不太在乎会议纪要。

+0

我想设置一个fireDate。下午7点是我拍摄的,但上午7点也会起作用。 – 2015-03-03 03:04:51

+0

http://stackoverflow.com/a/27367185/2303865 – 2015-03-03 03:07:21

+0

我不应该回答它两次只是upvote,如果它解决了您的问题 – 2015-03-03 03:08:24

回答

0

它仅用于ios 8.0及更高版本。

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