var Width: Int = 10
var Heigth: Int = 10
class ABC {
var A: Int = 0
var B: Int = 0
var C: Int = 0
}
var MABC = [[ABC]] (count: Width, repeatedValue: [ABC](count:Heigth, repeatedValue: ABC()))
MABC.forEach { (arr) ->() in
dump(UnsafePointer<ABC>(arr))
}
/*
▿ UnsafePointer(0x7FF4C0C36C20)
- pointerValue: 140689182780448
▿ UnsafePointer(0x7FF4C0C36C20)
- pointerValue: 140689182780448
▿ UnsafePointer(0x7FF4C0C36C20)
- pointerValue: 140689182780448
.....
*/
检查每个元素的地址,你阵列英寸你没有通过相同的参考阵列中的每个元素...
使用价值类型来填补你的阵列
var Width: Int = 10
var Heigth: Int = 10
struct ABC {
var A: Int = 0
var B: Int = 0
var C: Int = 0
}
var MABC = [[ABC]] (count: Width, repeatedValue: [ABC](count:Heigth, repeatedValue: ABC()))
MABC[0][0].A = 1
dump(MABC)
....▿ 10 elements
▿ [0]: 10 elements
▿ [0]: ABC
- A: 1
- B: 0
- C: 0
▿ [1]: ABC
- A: 0
- B: 0
- C: 0
▿ [2]: ABC
- A: 0
- B: 0
- C: 0
.......
这无可厚非。你用相同的参考值填充你的数组,所以数组中的所有项表示相同的类... – user3441734