Swift NSCalendarUnit setValue forComponent不工作

时间:2015-03-03 02:41:29

标签: swift ios7 ios8 nscalendar

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

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获取日期以设置本地通知。我不太关心会议记录。

1 个答案:

答案 0 :(得分:0)

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

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