调度队列会破坏数组中的顺序,如下所述。我正在尝试对数组进行排名,然后能够翻译它。到目前为止它不起作用:
let top5 = Array(labels.sorted{ $0.confidence > $1.confidence}.prefix(upTo:5))
for lulu in top5 {
let translator = ROGoogleTranslate()
var params = ROGoogleTranslateParams()
params.source = "en"
params.target = "es"
params.text = "\(String(describing: lulu.label))"
translator.translate(params: params, callback: { (result) in
DispatchQueue.main.async {
self.textUno.text = self.textUno.text! + "\(lulu.label)" + " \(lulu.confidence*100)\n"
self.textDos.text = self.textDos.text! + "\(result)\n"
self.view.addSubview(self.textUno)
self.view.addSubview(self.textDos)
}
})
}
如果我尝试将排序排除在外,DispatchQueue.main.async
那么翻译将不会与正确的单词对齐。
我该如何解决这个问题,以便对数组进行排序并且翻译匹配?