Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 如何使用NSDateComponentFormatter使我的计时器显示正确的数字格式_Xcode_Swift - Fatal编程技术网

Xcode 如何使用NSDateComponentFormatter使我的计时器显示正确的数字格式

Xcode 如何使用NSDateComponentFormatter使我的计时器显示正确的数字格式,xcode,swift,Xcode,Swift,我一直试图让我的秒表以以下格式显示时间 使用NSDateComponentFormatter,00h:00m:00s后缀是可选的 但我得到的是一个连续的0列。。。。如有任何建议,将不胜感激 func timerResults(){ ++stopWatchCounter let formatter = NSDateComponentsFormatter() formatter.unitsStyle = .Abbreviated formatter.allowed

我一直试图让我的秒表以以下格式显示时间 使用NSDateComponentFormatter,00h:00m:00s后缀是可选的

但我得到的是一个连续的0列。。。。如有任何建议,将不胜感激

func timerResults(){
    ++stopWatchCounter


    let formatter = NSDateComponentsFormatter()
    formatter.unitsStyle = .Abbreviated
    formatter.allowedUnits = .CalendarUnitSecond | .CalendarUnitMinute | .CalendarUnitHour

    let counterComponents = NSDateComponents()
        counterComponents.hour = 00
        counterComponents.minute = 00
        counterComponents.second = 00

    if let stopwatch = formatter.stringFromDateComponents(counterComponents){

  //  stopWatch.text = "\(stopwatch)"
      stopWatch.text = "\(stopWatchCounter)"

            println(stopwatch)

    }}

这不可能使用NSDATE组件格式。如果使用.Positional,则会得到类似于1:01:01的结果。如果您使用.Short,则为1小时1分钟1秒。您可以使用Stringformat:并创建自己的格式作为NStimeInterval扩展名,如下所示:

extension NSTimeInterval {
    var time:String {
        return String(format:"%02dh:%02dm:%02ds", Int((self/3600.0)%100),Int((self/60.0)%60), Int((self) % 60 ))
    }
}

(359999.0).time    // "99h:59m:59s"