arrays - 无法使用类型为 '[ClassName.StructName]' 的索引下标类型为 'ClassName.StructName' 的值

标签 arrays swift struct

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

结构

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

这里的问题:

Cannot subscript a value of type '[WorkTimeModifer.hourSlot]' with an index of type 'WorkTimeModifer.hourSlot'

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

提前致谢

最佳答案

你需要使用 Int 类型当你下标一个数组而不是索引在这里它是类型 hourSlot

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

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

关于arrays - 无法使用类型为 '[ClassName.StructName]' 的索引下标类型为 'ClassName.StructName' 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55782051/

相关文章:

c - 将结构作为 void* 指针传递时初始化程序无效

c++ - 读取包含SAFEARRAY的UDT的SAFEARRAY

c - 在 C 中用 if 语句填充二维数组

ios - Swift 静态数组 - 正在释放的指针未分配

ios - Swift 自定义 UIView 没有响应点击

SwiftUI 自定义重音颜色不适用于物理设备(iOS 13),但适用于其他任何地方(iOS 14.0+)

c - 将 char * 传递给结构

java - 将一维数组插入二维数组点

java - 为什么在 Java 中打印数组内存位置?

c - C语言重新初始化指针