このメソッドを呼び出すと、エラーが発生します。時間、分、または秒に代入する際にNaNまたは無限の値を処理する方法は?スイフト3:致命的なエラー:無限大またはNaNのいずれかであるため、Double値をIntに変換できません
private func secondsToFormattedString(totalSeconds: Float64) -> String{
let hours:Int = Int(totalSeconds.truncatingRemainder(dividingBy: 86400)/3600)
let minutes:Int = Int(totalSeconds.truncatingRemainder(dividingBy: 3600)/60)
let seconds:Int = Int(totalSeconds.truncatingRemainder(dividingBy: 60))
if hours > 0 {
return String(format: "%i:%02i:%02i", hours, minutes, seconds)
} else {
return String(format: "%02i:%02i", minutes, seconds)
}
}
は 'TimeInterval'を使用することを考えてみましょう。ここ
は私のコードですと 'DateComponentsFormatter' – vadian関数をどのように呼び出すか、問題が発生したときのtotalSecondsの値は何ですか? - 自己完結型の再現可能なテストケースが役立ちます。 –