【问题标题】:Firebase iOS -Cast StorageUploadTask Progress From Double to IntFirebase iOS -Cast StorageUploadTask 进度从 Double 到 Int
【发布时间】:2023-03-26 13:06:01
【问题描述】:

我正在将视频文件上传到 Firebase 存储,并且我正在使用进度指示器来显示它的进度。一切正常,除了我无法显示Ints(整数),它显示Doubles,例如:

数字应该是整数,例如0%, 33%, and 96%

我尝试了casting 类型为DoubleInt 的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)%"
    }
})

【问题讨论】:

  • 尝试使用NumberFormatterNSNumber 或简单的String(format: "%.0f", floor(double))
  • @kathayatnk 嘿,谢谢它的工作。我用 self?.progressLabel.text = "(String(format: "%.0f", floor(percentComplete)))%"
  • 你应该添加有答案的,我会接受的
  • 太好了,谢谢添加答案

标签: ios swift firebase firebase-storage


【解决方案1】:

你可以为此使用简单的字符串初始化器

String(format: "%.0f", floor(percentComplete))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 2019-04-12
    相关资源
    最近更新 更多