如何在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)"
所以我有这个数组 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)"