作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用此图像扩展来计算以 MB 为单位的图像大小。我用逗号 (,) 而不是像 "1,7 MB"
这样的点 (.) 获取图像的大小extension UIImage {
func getFileSizeInfo(allowedUnits: ByteCountFormatter.Units = .useMB,
countStyle: ByteCountFormatter.CountStyle = .file) -> String? {
let formatter = ByteCountFormatter()
formatter.allowedUnits = allowedUnits
formatter.countStyle = countStyle
return getSizeInfo(formatter: formatter)
}
func getSizeInfo(formatter: ByteCountFormatter, compressionQuality: CGFloat = 1.0) -> String? {
guard let imageData = jpegData(compressionQuality: compressionQuality) else { return nil }
return formatter.string(fromByteCount: Int64(imageData.count))
}
}
方法调用:
var imageSizeInMB = image.getFileSizeInfo()
print(imageSizeInMB) //Output "1,7 MB"
我需要像“1.7 MB”这样的输出
我不是在寻找“替换字符串中的字符”。
请帮帮我。
最佳答案
ByteCountFormatter
没有 locale
属性来配置输出的目标语言环境,这与 NumberFormatter
和 DateFormatter
不同以便它从系统设置中获取信息。
您可以在您的设备上将当前区域设置更改为具有所需 decimalSeparator
的区域设置,或者在您的应用程序级别以编程方式更改区域设置:
extension NSLocale {
@objc static var currentLocale = NSLocale(localeIdentifier: "en_US") // decimalSeparator = "."
//@objc static var currentLocale = NSLocale(localeIdentifier: "fr_FR") // decimalSeparator = ","
}
let formatter = ByteCountFormatter()
formatter.allowedUnits = .useMB
let text = formatter.string(fromByteCount: 1_700_000)
print(text)
输出:
1.7 MB
关于ios - 以 MB 为单位的 ByteCountFormatter,结果以逗号 (,) 而不是点 (.),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61487618/
将字节值转换为 GB/MB/KB,我使用的是 ByteCountFormatter。下面的示例代码。 func converByteToGB(_ bytes:Int64) -> String {
我正在使用此图像扩展来计算以 MB 为单位的图像大小。我用逗号 (,) 而不是像 "1,7 MB" 这样的点 (.) 获取图像的大小 extension UIImage { fu
我是一名优秀的程序员,十分优秀!