【问题标题】:Swift - How do I loop through this array and print each value without subscript errorSwift - 我如何遍历这个数组并打印每个值而没有下标错误
【发布时间】:2021-05-24 06:36:11
【问题描述】:

我正在尝试使用标准 for in 循环快速遍历这组 HealthKit 样本,但我一直收到错误消息。

这是我要运行的代码:

for x in samples! as [HKSample] {
    let data = samples![x] as! HKQuantitySample
    let unit = HKUnit(from: "cal")
    let cal = data.quantity.doubleValue(for: unit)
    print(cal)
}

这是它返回的错误:

Subscript 'subscript(_:)' requires that 'HKSample' conform to 'RangeExpression'

作为参考,当您指定要访问的数组中元素的编号时,相同的代码会起作用:

for x in samples! as [HKSample] {
    let data = samples![0] as! HKQuantitySample
    let unit = HKUnit(from: "cal")
    let cal = data.quantity.doubleValue(for: unit)
    print(cal)
}

但正如您所料,这只是获取数组中的第一个元素,并反复迭代与数组中的元素相同的次数。

【问题讨论】:

  • 尝试for sample in samples as? [HKQuantitySample] ?? [] { 然后let cal = sample.quantity.doubleValue(for: HKUnit(from: "cal"))

标签: arrays swift xcode for-loop


【解决方案1】:

感谢Leo Dabus

只需要稍微修改一下:

for sample in samples as? [HKQuantitySample] ?? [] {
    let unit = HKUnit(from: "cal")
    let cal = sample.quantity.doubleValue(for: unit)
    print(cal)
}

【讨论】:

    猜你喜欢
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    相关资源
    最近更新 更多