2016-02-03 4 views
0

У меня есть следующий фрагмент для отображения секунд, как я могу показать миллисекунды?Миллисекунды в Swift

// update timer 
func updateTime() { 
    second++ 
    if second == 1 { 
     second++ 
    } 
    secondTimeLabel.text = "\(second)" 
} 
+0

Вы не можете, так как вы счетные второй, так что либо изменить код для подсчета миллисекунд или обойтись. – rckoenes

+0

никогда не учитывайте время вручную, сохраняйте время начала и время обновления, чтобы быть разницей между текущим временем и временем начала. – Sulthan

ответ

1

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))") 
    } 
0

Поскольку базовый блок в 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)" 
} 
Смежные вопросы