だから、僕はただ変換のXcode 8に更新し、スウィフト3、およびスウィフト3に私のスウィフト2.3のコードに変換したすべてのNSDate
Foundation.Date
NSDate
にそして私はextension
を持っていました
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!
}
}
:
extension NSDate
{
var firstDayOfTheMonth:NSDate
{
var date: NSDate?
NSCalendar.currentCalendar().rangeOfUnit(.Month, startDate:&date , interval: nil, forDate: self)
return date!
}
}
そしてスウィフト3はこれにそれを変換:NSDate
のために、今Foundation.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
どのように私はこの作品を作ることができると言いますか?
Swift 3では 'rangeOfUnit'は' dateInterval'です(例:http://stackoverflow.com/a/39527482/1187415)。 –
あなたは正しいですMartin R、ありがとうございます。 –