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
Как я могу сделать эту работу?