2016-04-26 2 views
0

Я выполнил приведенный ниже код на Swift Playground. Я ожидал, что число «первых секунд» будет равным 5, а число «вторых секунд» будет равным 10, так как оба имеют тот же startDt, что и начальная точка. Но оба оказались на выходе 5. Я что-то упустил?Расчет истекшего времени в разные моменты времени с фиксированного времени начала

let startDt = NSDate() 
sleep(5) 
let endDt = NSDate() 
let calendar = NSCalendar.currentCalendar() 
let datecomponenets = calendar.components([NSCalendarUnit.Second] , fromDate: startDt, toDate: endDt, options: []) 
let seconds = datecomponenets.second 
print("First Seconds: \(seconds)") 

sleep(5) 
let endDt1 = NSDate() 
let calendar1 = NSCalendar.currentCalendar() 
let datecomponenets1 = calendar.components([NSCalendarUnit.Second] , fromDate: startDt, toDate: endDt1, options: []) 
let seconds1 = datecomponenets.second 
print("Second Seconds: \(seconds1)") 

ответ

1

У вас есть опечатка.

let seconds1 = datecomponenets.second 

Должно быть

let seconds1 = datecomponenets1.second 

Тогда он будет работать, как ожидалось.