🦁

ByteCountFormatterの使い方

2022/07/24に公開

ByteCountFormatter

ByteCountFormatterはバイトサイズを適切は単位(KB、MB、GBなど)にフォーマットできるものです。

123456789 -> "123.5 MB"

countStyle

ByteCountFormatterにはcountStyleというものがありこれで1KBを何bytesとして計算するかを決めます。

実質的には2つの選択肢です。

Name Discription
decimal 1 KB = 1000 bytes
binary 1 KB = 1024 bytes
file decimalと同じ(将来的に変更されるかも)
memory binaryと同じ(将来的に変更されるかも)

使い方

let byteCountFormatter = ByteCountFormatter()
byteCountFormatter.allowedUnits = [.useKB] // 使用する単位を選択
byteCountFormatter.isAdaptive = true // 端数桁を表示する(123 MB -> 123.4 MB)(KBは0桁, MBは1桁, GB以上は2桁)
byteCountFormatter.zeroPadsFractionDigits = true // trueだと100 MBを100.0 MBとして表示する(isAdaptiveをtrueにする必要がある)

let byte = Measurement<UnitInformationStorage>(value: 1024000, unit: .bytes)

byteCountFormatter.countStyle = .decimal // 1 KB = 1000 bytes
print(byteCountFormatter.string(from: byte)) // 1,024 KB

byteCountFormatter.countStyle = .binary // 1 KB = 1024 bytes
print(byteCountFormatter.string(from: byte)) // 1,000 KB

Discussion