0
私は、ユーザの設定をNSUserDefaults
に基づいて分を10進数またはHH:MM文字列に変換する関数を持っています。時間変換機能をSwift Extensionに変更する
たとえば、90
分は、1.5
または1: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
スウィフト拡張子に変換できる場合、私は思ったんだけど。私はすべての変換を行うために私が上書きする必要があることを知るのに困っています。
これをどのように拡張することができますか?
ありがとうございます。 'NSNumberFormatter'拡張はどのように見えますか?グラフのラベルを変更するための 'NSNumberFormatter'しか受け付けないグラフプラグインに渡しているので、これを使用する必要があります。 –
'extension Int 'を' extension NSNumberFormatter'で置き換え、 'self'が' Int'ではなく 'NSNumberFormatter'になることを実現してください。それを試してみてください、そして、あなたが何か特定のものにこだわっていたら、別の質問をしてください。 – par