2015-01-01 4 views
0

Хотелось бы спросить, как правильно форматировать NSTimer в интервале 0.01? Я хотел бы иметь что-то вроде 00:00.00 (мин, сек, мс)Правильное форматирование NSTimer в Swift

Когда я запускаю мой код:

...

@IBAction func btn_play(sender: AnyObject) { 
     timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: Selector("result"), userInfo: nil, repeats: true) 
    } 

...

func result() { 
    count++ 
    lbl_time.text = String(count) 
} 

...

Получаю приблизительно 1123 (стоит за 11 секунд 23 мс) Как бы вы трансформируют его, например:

00:11.23

я попробовал некоторые вещи с «подстроки», но без успеха. Я новичок в Swift, поэтому я не знаю, какие возможности у меня есть здесь. спасибо!

ответ

1

Используйте целочисленное деление / и по модулю % для вычисления значения минуты, секунды, и сотых доли секунды, а затем использовать String удобства инициализатор, который принимает format строку, чтобы добавить ведущие нули и двоеточие:

let count = 1234 
let str = String(format:"%02d:%02d:%02d", (count/6000)%100, (count/100)%60, count%100) 

Эта функциональность исходит из рамки Foundation. Чтобы использовать этот удобный инициализатор для String, вы должны import Foundation (примечание: Foundation импортируется как import UIKit (iOS), так и import Cocoa (OS X), поэтому вы обычно не делаете import Foundation).

Методы форматирования the IEEE printf specification.

+0

Первый термин должен быть чем-то вроде 'count/6000', чтобы дать минуты. –

+0

Хорошая точка @MartinR. Я был сосредоточен на форматировании, и мне не хватало математики. – vacawama

+0

Thx много парней! работает как шарм! Будет ли Google немного теперь для формата. Чтобы увидеть, что все возможно! Thx – lostrva

Смежные вопросы