Не удается вызвать значение типа «NSCalendar.Unit.Type» со списком аргументов «(rawValue: UInt)»

Aster Обновите мой проект с swift2.3 до swift 3. Я получил эту ошибку: не удается вызвать значение типа «NSCalendar.Unit.Type» со списком аргументов «(rawValue: UInt)» в swift3. NScalender переименован в Calendar, но как использовать класс календаря в этом коде?':

private func calendar(_ calendar: TKCalendar, eventsForDate date: Date) -> [AnyObject]? {
   let components = self.calendarView.calendar.component(NSCalendar.Unit(rawValue: NSCalendar.Unit.Year.rawValue|NSCalendar.Unit.Month.rawValue|NSCalendar.Unit.Day.rawValue), from: date)


    components.hour = 23
    components.minute = 59
    components.second = 59
    let endDate = self.calendarView.calendar.dateFromComponents(components)
    let predicate = NSPredicate(format: "(startDate <= %@) AND (endDate >= %@)", endDate!, date)
    let result: NSArray = self.events.filteredArrayUsingPredicate(predicate)
    return result as [AnyObject]
}

person Enamn_dev    schedule 13.07.2017    source источник


Ответы (1)


Это связано с быстрыми изменениями 3 в классе календаря.

Измените его на -

let components = self.calendarView.calendar.dateComponents([.day, .month, .year], from: date)
person Jasveer Singh    schedule 13.07.2017