2015-03-03 3 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 для всех из них. Какие-нибудь догадки о том, почему это происходит?

Edit: То, что я пытаюсь сделать, это получить дату около 5:00, 7:00, 9:00 и 10:00 вечера завтра, чтобы установить локальное оповещение. Мне все равно, о протоколах.

+0

Я пытаюсь настроить fireDate. 7 вечера - это то, что я снимаю, но 7am тоже будет работать. –

+0

http://stackoverflow.com/a/27367185/2303865 –

+0

Я не должен отвечать на него дважды, только если вы решите свою проблему –

ответ

0

Используется только для ios 8.0 и более поздних версий.

@availability(iOS, introduced=8.0) 
func setValue(value: Int, forComponent unit: NSCalendarUnit) 
Смежные вопросы