Из Apple doc: чтобы вычислить последовательность дат, используйте enumerateDatesStartingAfterDate: MatchComponents: options: usingBlock: метод вместо вызова этого метода (- nextDateAfterDate: MatchingComponents: options:) в цикле с результатом итерации предыдущего цикла.1001 *
Как я понял, он будет повторять все даты, соответствующие «matchComponents», до тех пор, пока вы не закончите итерацию с «stop.memory = true»
let calendar = NSCalendar.currentCalendar()
let startDate = calendar.startOfDayForDate(NSDate())
let finishDate = calendar.dateByAddingUnit(.Day, value: 10, toDate: startDate, options: [])
let dayComponent = NSDateComponents()
dayComponent.hour = 1
calendar.enumerateDatesStartingAfterDate(startDate, matchingComponents: dayComponent, options: [.MatchStrictly]) { (date, exactMatch, stop) in
print(date)
if date!.compare(finishDate!) == NSComparisonResult.OrderedDescending {
// .memory gets at the value of an UnsafeMutablePointer
stop.memory = true
}
}