0
我有一個功能,可根據用戶首選項NSUserDefaults
將分鐘轉換爲小數或HH:MM字符串。例如,90
分鐘可以是1.5
或1:30
。將時間轉換功能更改爲Swift擴展
這裏是我的功能:
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
斯威夫特擴展。我很難知道我需要重寫以完成所有轉換。
任何想法如何使這個擴展?
謝謝,這是有道理的。如何用'NSNumberFormatter'擴展名來看?我需要使用它,因爲我將它傳遞給只接受「NSNumberFormatter」來更改圖形標籤的圖形插件。 –
只需用'extension NSNumberFormatter'替換'extension Int'並且意識到'self'將會是'NSNumberFormatter'而不是'Int'。嘗試一下,如果你遇到某些特定的問題,請提出另一個問題。 – par