【问题标题】:Cannot subscript a value of type '[ClassName.StructName]' with an index of type 'ClassName.StructName'无法使用“ClassName.StructName”类型的索引为“[ClassName.StructName]”类型的值下标
【发布时间】:2019-04-21 10:47:55
【问题描述】:

我遇到了这个问题,还没有找到任何解决方案。

结构

struct hourSlot{
        lazy var timeWorkingString = "\(startTimeStructString) -  \(endTimeStructString)"
        var startTimeStructString = "null"
        var endTimeStructString:String = "null"
        (Some logic here)
}

这里的问题:

不能为“[WorkTimeModifer.hourSlot]”类型的值添加下标 'WorkTimeModifer.hourSlot' 类型的索引

var hoursArray = [hourSlot]()
func updateTable(){
        for index in hoursArray{
            let timeFinal:String = hoursArray[index].timeWorkingString
        }
}

提前致谢

【问题讨论】:

  • 你正在处理快速枚举循环,这意味着index当前对象本身不是索引。

标签: arrays swift struct


【解决方案1】:

下标数组时需要使用Int 类型而不是索引,这里它的类型是hourSlot

for item in hoursArray {
    let timeFinal = item.timeWorkingString
}

for (index,item) in hoursArray.enumerated() {
    let timeFinal = hoursArray[index].timeWorkingString
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 2020-02-08
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多