如何在Swift中使用二维数组?

How to use two-dimensions array in Swift?

所以我有这个数组 var arrayItinerario: Array<Any> = [] 用于保存 Itinerario, var temporalArray: Array<Itinerario> = []

类型的数组

接下来,此 arrayItinerario 稍后将用于访问数组 temporalArray 类型来自的结构 Itinerario 中的属性。

cell.siteLabel.text = "\([arrayItinerario[indexPath.section]][indexPath.row].ubicacion)"

问题是 arrayItinerario 不是 Itinerario 类型的对象,因此无法访问 ubicacion 来制作示例 我试过了 let object = [arrayItinerario[indexPath.section]][indexPath.row] as! Itinerario 但是演员表抛出错误。我该如何访问 arrayItinerario 中的数组 temporalArray 中的属性?

注意:我正在使用 indexPath,因为我正在填充 table 个单元格


这是我在几个项目中使用的实现:

import Foundation

class Array2D<T> {

    var cols:Int, rows:Int
    var matrix:[T?]

    init(cols: Int, rows: Int, defaultValue:T?) {
        self.cols = cols
        self.rows = rows
        matrix = Array(repeating: defaultValue, count: cols*rows)
    }

    subscript(col:Int, row:Int) -> T? {
        get{
            return matrix[cols * row + col]
        }
        set{
            matrix[cols * row + col] = newValue
        }
    }

    func colCount() -> Int { self.cols }
    func rowCount() -> Int { self.rows }
}

因为它是通用的,所以您可以在其中存储您喜欢的任何类型。 Ints 示例:

// Create 2D array of Ints, all set to nil initially
let arr = Array2D<Int>(cols: 10, rows: 10, defaultValue: nil)
var arrayItinerario: [[Itinerario]] = []

//fill data
var temporalArray: [Itinerario] = []
arrayItinerario.append(temporalArray)

cell.siteLabel.text = "\(arrayItinerario[indexPath.section][indexPath.row].ubicacion)"

var arrayItinerario: Array<Any> = []
var temporalArray: Array<Itinerario> = []

guard let temp = arrayItinerario[indexPath.section] as? Array<Itinerario>{
    return
}

cell.siteLabel.text = "\(temp[indexPath.row].ubicacion)"