Может быть, вам нужен двумерный массив некоторых объектов, соответствующих протоколу, которые ведут себя так, как вы хотите
protocol GridItemType {
// your grid item variables and methods
}
, и тогда
var Grid: [[GridItemType]]
может быть вашей сеткой (a2D массив).
Вы можете просто представить свой индекс в сетке с номером строки и столбца.Для увеличения по столбцу вы можете просто увеличить номер столбца, пока не достигнете конца строки, а затем увеличить строку.Вы можете сделать что-то похожее на увеличение по строке.