У меня есть следующий фрагмент для отображения секунд, как я могу показать миллисекунды?Миллисекунды в Swift
// update timer
func updateTime() {
second++
if second == 1 {
second++
}
secondTimeLabel.text = "\(second)"
}
У меня есть следующий фрагмент для отображения секунд, как я могу показать миллисекунды?Миллисекунды в Swift
// update timer
func updateTime() {
second++
if second == 1 {
second++
}
secondTimeLabel.text = "\(second)"
}
NSTimeInterval - двойное значение и может показывать миллисекунды.
NSTimer.scheduledTimerWithTimeInterval(0.1, target: self,
selector: "printDuration:",
userInfo: NSDate(),
repeats: true)
func printDuration(timer: NSTimer) {
guard let userInfo = timer.userInfo else {
return
}
guard let startDate = userInfo as? NSDate else {
return
}
print("duration: \(NSDate().timeIntervalSinceDate(startDate))")
}
Поскольку базовый блок в NSTimeInterval
является секунды, а затем использовать это 0,001 миллисекунды.
Таким образом, вы можете использовать его как этот
let milisecond = 0.001 //NSTimeInterval
NSTimer.scheduledTimerWithTimeInterval(millisecond, target: self, selector: "milisecondTick:", userInfo: nil, repeats: true)
func milisecondTick(timer:NSTimer) {
guard let date = timer.userInfo as? NSDate else {
timer.invalidate()
return
}
let passedMilliseconds = NSDate().timeIntervalSinceDate(date)
millisecondTimeLabel.text = "\(passedMilliseconds)"
}
Вы не можете, так как вы счетные второй, так что либо изменить код для подсчета миллисекунд или обойтись. – rckoenes
никогда не учитывайте время вручную, сохраняйте время начала и время обновления, чтобы быть разницей между текущим временем и временем начала. – Sulthan