То, как я это делал в Swift 2.3, было:
let currentDate = NSDate()
let currentCalendar = NSCalendar.currentCalendar()
var startDate : NSDate?
var endDate : NSDate?
// The following two lines set the `startDate` and `endDate` to the start of the day
currentCalendar.rangeOfUnit(.Day, startDate: &startDate, interval: nil, forDate: currentDate)
currentCalendar.rangeOfUnit(.Day, startDate: &endDate, interval: nil, forDate: self)
let intervalComps = currentCalendar.components([.Day], fromDate: startDate!, toDate: endDate!, options: [])
print(intervalComps.day)
Теперь все изменилось с помощью Swift 3. Мне нужно либо использовать NSCalendar
, либо NSDate
, постоянно набирать casting с помощью as
или находить способ Swift 3 сделать это.
Какой правильный способ сделать это в Swift 3?