【发布时间】:2023-03-26 13:06:01
【问题描述】:
我正在将视频文件上传到 Firebase 存储,并且我正在使用进度指示器来显示它的进度。一切正常,除了我无法显示Ints(整数),它显示Doubles,例如:
数字应该是整数,例如0%, 33%, and 96%
我尝试了casting 类型为Double 到Int 的percentLabel,但它一直在崩溃:
let percentComplete: Double = 100.0 * Double(completedUnitCount) / Double(totalUnitCount)
self?.progressLabel.text = "\(Int(percentComplete))%"
我怎样才能让这些 Doubles 变成 Ints?
var uploadTask: StorageUploadTask?
uploadTask = videoIdRef?.putFile(from: videoUrl)
uploadTask?.observe(.progress, handler: {
[weak self] (snapshot) in
if let completedUnitCount = snapshot.progress?.completedUnitCount, let totalUnitCount =
snapshot.progress?.totalUnitCount {
let uploadProgress:Float = Float(completedUnitCount) / Float(totalUnitCount)
self?.progressView.progress = uploadProgress
let percentComplete = 100.0 * Double(completedUnitCount) / Double(totalUnitCount)
self?.progressLabel.text = "\(percentComplete)%"
}
})
【问题讨论】:
-
尝试使用
NumberFormatter或NSNumber或简单的String(format: "%.0f", floor(double)) -
@kathayatnk 嘿,谢谢它的工作。我用 self?.progressLabel.text = "(String(format: "%.0f", floor(percentComplete)))%"
-
你应该添加有答案的,我会接受的
-
太好了,谢谢添加答案
标签: ios swift firebase firebase-storage