Как мне извлечь этикетку с наивысшим значением достоверности и распечатать ее в Swift? - PullRequest
0 голосов
/ 09 мая 2020
private func showResults(_ results: [(label: String, confidence: 
Float)]?) {
    var resultsText = Constants.failedToDetectObjectsMessage
    if let results = results {
      resultsText = results.reduce("") { (resultString, result) -> 
String in
        let (label, confidence) = result
        return resultString + "\(label): \(String(describing: 
confidence))\n"
      }
    }
    resultsAlertController.message = resultsText
    resultsAlertController.popoverPresentationController?.sourceRect = self.annotationOverlayView.frame
    resultsAlertController.popoverPresentationController?.sourceView = self.annotationOverlayView
    present(resultsAlertController, animated: true, completion: nil)
    print(resultsText)
}

Это пример кода, который я пробовал. Как извлечь этикетку с наивысшим значением достоверности и распечатать ее?

1 Ответ

0 голосов
/ 09 мая 2020

Чтобы узнать, какая метка имеет наивысший уровень достоверности, необходимо вызвать max(by:) в массиве results. См. https://developer.apple.com/documentation/swift/sequence/2906531-max

private func showResults(_ results: [(label: String, confidence: Float)]?) {
    if let results = results {
        let biggest = results.max { $0.confidence < $1.confidence }
        if let biggest = biggest {
            let (label, confidence) = biggest
            // ...
        }
    }
}
...