Data de Swift 2.3 para Data da conversão Swift 3

Acabei de atualizar para o Xcode 8 e converti meu código Swift 2.3 para Swift 3, e o Swift 3 acabou de converter todosNSDate paraFoundation.Date

E eu tive umextension paraNSDateagora chamadoFoundation.Date, ficou assim:

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

E o Swift 3 converteu-o para isso:

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!
  }
}

O problema aqui é que o Xcode me sugere fazer isso:Cannot convert value of type 'Date?' to expected argument type 'NSDate?' e soltar o&.

Então, eu mudo e a função agora fica assim:

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!
  }
}

Mas agora o Xcode dizCannot convert value of type 'Date?' to type 'NSDate?' in coercion

Como posso fazer isso funcionar?

questionAnswers(1)

yourAnswerToTheQuestion