gpt4 book ai didi

swift - 将时间转换函数更改为 Swift 扩展

转载 作者:行者123 更新时间:2023-11-30 12:55:00 29 4
gpt4 key购买 nike

我有一个函数,可以根据 NSUserDefaults 中的用户首选项将分钟转换为小数或 HH:MM 字符串。

例如,90 分钟将为 1.51:30

这是我的功能:

func decimalOrHHMM(value:Int) -> String{
let totalMinutes = Double(value)

let defaults = UserDefaults.standard
if defaults.string(forKey: "displayTotalsAs") == "hhmm"{
//HH:MM
let hours = floor(totalMinutes/60)
let minutes = totalMinutes.truncatingRemainder(dividingBy: 60) //This gives us the remainder
let hrs = String(format: "%.0f", hours) //Remove tenths place
var mins = ""
if minutes < 10{
//Prepend 0
mins = String(format: "0%.0f", minutes)
}else{
mins = String(format: "%.0f", minutes)
}
return "\(hrs):\(mins)"
}else{
//Decimal
return String(format: "%.1f", totalMinutes/60)
}
}

这很好用,但我想知道是否可以以某种方式将其转换为 NSNumberFormatter Swift 扩展。我无法知道需要覆盖什么才能完成所有转换。

知道如何将其作为扩展吗?

最佳答案

这是 Swift 扩展的基本结构,您可以使用函数而不是计算属性,但由于原始函数采用 Int 值,因此计算属性是有意义的。

extension Int {
var decimalOrHHMM: String {
return "\(self)" // do your actual conversion here
}
}

您还可以选择扩展NSNumberFormatter

关于swift - 将时间转换函数更改为 Swift 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40520194/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com