【发布时间】:2021-11-23 17:46:43
【问题描述】:
我有一个 Swift cli 应用程序,其中使用了异步 Task。我想根据任务的进度显示进度条。我正在为酒吧使用Progress.swift 包。
我的代码如下所示。
var bar = ProgressBar(count: 100)
let waiter = Task {
do {
for try await output in session.outputs {
switch output {
case .requestProgress(let request, let fractionComplete):
bar.setValue(Int(fractionComplete * 100))
}
}
} catch {
logger.error("Output: ERROR = \(String(describing: error))")
Foundation.exit(0)
}
}
我现在的问题是在bar.setValue() 收到以下错误
Mutation of captured var 'bar' in concurrently-executing code.
我对 swift 很陌生,所以请多多包涵。
我确实理解错误消息,但我该如何解决这个问题并捕捉到更新我的栏的进度?
【问题讨论】:
标签: swift command-line-interface task progress-bar