NSDate от Swift 2.3 до даты от Swift 3 преобразования

Итак, я только что обновился до Xcode 8 и преобразовал свой код Swift 2.3 в Swift 3, а Swift 3 просто преобразовал всеNSDate вFoundation.Date

И у меня былextension заNSDateсейчас называетсяFoundation.Dateэто выглядело так:

extension NSDate
{
  var firstDayOfTheMonth:NSDate
  {
     var date: NSDate?
     NSCalendar.currentCalendar().rangeOfUnit(.Month, startDate:&date , interval: nil, forDate: self)
     return date!
  }
}

И Swift 3 преобразовал это в это:

extension Foundation.Date
{
  var firstDayOfTheMonth:Foundation.Date
  {
     var date: Foundation.Date?
    (Calendar.current as NSCalendar).range(of: .month, start:&date , interval: nil, for: self)
     return date!
  }
}

Проблема в том, что Xcode предлагает мне сделать это:Cannot convert value of type 'Date?' to expected argument type 'NSDate?' и бросить&.

Итак, я изменил его, и теперь функция выглядит так:

extension Foundation.Date
{
  var firstDayOfTheMonth:Foundation.Date
  {
     var date: Foundation.Date?
    (Calendar.current as NSCalendar).range(of: .month, start:date as NSDate?, interval: nil, for: self)
     return date!
  }
}

Но теперь Xcode говоритCannot convert value of type 'Date?' to type 'NSDate?' in coercion

Как я могу сделать эту работу?

Ответы на вопрос(1)

Ваш ответ на вопрос