2016-01-03 4 views
2

У меня есть следующий код в XCode Playground:Почему функция nextDateAfterDate не работает должным образом?

let currentDate = NSDate() 

var starttime = NSCalendar.currentCalendar().nextDateAfterDate(currentDate, matchingUnit: NSCalendarUnit.Minute, value: 15, options: NSCalendarOptions.MatchNextTime) 

Если CurrentDate является "2016-01-03 3:57 +0100" время_запуска правильно установлен на "Ян 3, 2016, 4:15 AM" , но если currentDate является «2016-01-03 03:56 +0100», время запуска неверно установлено на «4 января 2016 года, 12:00». Я не могу понять, что случилось. Я что-то упускаю?

+1

У меня нет ответа, но я подтвердить результаты с сниппета: https://gitlab.com/snippets/12822 – vikingosegundo

ответ

2

Я не могу объяснить неожиданное поведение, но настройки параметров соответствия для

[.MatchNextTime, .MatchStrictly] 

решает эту проблему и дает правильные результаты во всех моих тестах.

.MatchStrictly документирована как

Указывает, что операция должна ехать так далеко вперед или назад по мере необходимости, глядя на матч.

+0

Спасибо, я проверил его, а также с использованием только 'NSCalendarOptions.MatchStrictly' дает мне правильные результаты. Тем не менее, я отправил сообщение об ошибке в Apple из-за странного поведения опции '.MatchNextTime'. – iCode

Смежные вопросы