Ios 为什么是';下一个日期之后日期';功能未按预期工作?

Ios 为什么是';下一个日期之后日期';功能未按预期工作?,ios,swift,nsdate,Ios,Swift,Nsdate,我在XCode游乐场中有以下代码: let currentDate = NSDate() var starttime = NSCalendar.currentCalendar().nextDateAfterDate(currentDate, matchingUnit: NSCalendarUnit.Minute, value: 15, options: NSCalendarOptions.MatchNextTime) 如果当前日期为“2016-01-03 03:57+0100”,则开始时间正

我在XCode游乐场中有以下代码:

let currentDate = NSDate()

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

如果当前日期为“2016-01-03 03:57+0100”,则开始时间正确设置为“2016年1月3日上午4:15”,但如果当前日期为“2016-01-03 03:56+0100”,则开始时间错误设置为“2016年1月4日上午12:00”。我搞不清楚出了什么问题。我是否忽略了什么?

我无法解释意外行为,但将匹配选项设置为

[.MatchNextTime, .MatchStrictly]
解决了问题,并在所有测试中给出正确的结果

.match
的文档记录如下

指定操作应尽可能向前或向后移动以查找匹配项


我没有答案,但我确实用snippet确认了结果:谢谢,我测试了它,并且只使用了
NSCalendarOptions。MatchStrickly
给了我正确的结果。尽管如此,由于
.matchnextime
-选项的奇怪行为,我还是向苹果发送了一份错误报告。