首页 > 解决方案 > 如何在 Swift 5 中从数组中获取值

问题描述

我有一个数组 @Binding var classificationInProcent: Array<Any>,我将值从let classificationTest = request.results as? [VNClassificationObservation]. 当我使用时print(type(Of: classificationTest)),我得到的是一个数组

现在classificationInProcent我有价值观:

[(confidence: 0.8427822, identifier: "Rose"), (confidence: 0.15579186, identifier: "Carnation"), (confidence: 0.00085995096, identifier: "Tulip"), (confidence: 0.00027763256, identifier: "Magnolia"), (confidence: 0.00016394019, identifier: "Poppy"), (confidence: 0.00010621416, identifier: "Daisy"), (confidence: 1.5651864e-05, identifier: "Orchid"), (confidence: 1.4234058e-06, identifier: "Hyacinth"), (confidence: 1.0996952e-06, identifier: "Sunflower"), (confidence: 3.0659162e-08, identifier: "Iris")] 我想分别提取每个值,即confidence: 0.8427822分别identifier: "Rose"。我需要这个值,因为我将创建图表并在那里使用它。我试图以classificationInProcent这种方式打印值: print("First value: ", classificationInProcent[0].confidence)但 Xcode 告诉我,在 dot 之后我不能使用信心,只是self.

如何从 Array 中获取所有这些值?

标签: arraysswiftswiftui

解决方案


of 的类型classificationInProcent已经从它的值中推断出来,你不需要像我在下面的代码中展示的那样给出它,为什么不只是简单地循环classificationInProcent使用 a forEach

let classificationInProcent = [(confidence: 0.8427822, identifier: "Rose"), (confidence: 0.15579186, identifier: "Carnation"), (confidence: 0.00085995096, identifier: "Tulip"), (confidence: 0.00027763256, identifier: "Magnolia"), (confidence: 0.00016394019, identifier: "Poppy"), (confidence: 0.00010621416, identifier: "Daisy"), (confidence: 1.5651864e-05, identifier: "Orchid"), (confidence: 1.4234058e-06, identifier: "Hyacinth"), (confidence: 1.0996952e-06, identifier: "Sunflower"), (confidence: 3.0659162e-08, identifier: "Iris")]

classificationInProcent.forEach { (confidence, identifier) in
    print("First value: ", confidence)
    print("Second value: ", identifier)
}

推荐阅读