2015-03-03 70 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)