У меня есть следующий код, который использовал компиляцию в Swift 2, но не будет в Swift 4.2.Функция диапазона, которая возвращает логическое значение, больше не является частью типа данных календаря, однако она является частью типа данных NSCalendar.Есть ли способ, с помощью которого я могу использовать или отформатировать эту функцию, чтобы она компилировалась в Swift 4.2?
extension Calendar {
/**
Returns a tuple containing the start and end dates for the week that the
specified date falls in.
*/
func weekDatesForDate(date: NSDate) -> (start: NSDate, end: NSDate) {
var interval: TimeInterval = 0
var start: NSDate?
range(of: .weekOfYear, start: &start, interval: &interval, for: date as Date)
let end = start!.addingTimeInterval(interval)
return (start!, end)
}
}
Я пробовал следующее, однако функция range не совпадает и не компилируется:
extension NSCalendar {
/**
Returns a tuple containing the start and end dates for the week that the
specified date falls in.
*/
func weekDatesForDate(date: NSDate) -> (start: NSDate, end: NSDate) {
var interval: TimeInterval = 0
var start: NSDate?
range(of: .weekOfYear, start: &start, interval: &interval, for: date as Date)
let end = start!.addingTimeInterval(interval)
return (start!, end)
}
}