Добавление массива 2d в 3d-массив Swift

99
7

Я застрял в ситуации, когда я использовал 3D-массивы. У меня есть родительский и дочерний классы:

class Parent {
}
class Child: Parent {
}

Im способен создать 2d-массив родительского типа и добавить его с 1d-массивом дочернего типа:

var arr2dParent:[[Parent]] = [[Parent]]()
var arr1dChild:[Child] = [Child]()
arr2dParent.append(arr1dChild)

Вышеприведенный код работает нормально.

Но когда я создаю трехмерный массив родительского типа и добавляю его с 2d-массивом дочернего типа, я получаю ошибку:

var arr3dParent:[[[Parent]]] = [[[Parent]]]()
var arrChild2d:[[Child]] = [[Child]]()
arr3dParent.append(arrChild2d)

Im получает следующую ошибку:

Cannot invoke 'append' with an argument list of type '([[Child]])'

Есть идеи?

спросил(а) 2021-01-25T17:43:07+03:00 4 месяца, 4 недели назад
1
Решение
125

Ваша проблема в типах, посмотрите близко:

arr3dParent.append(arrChild2d)

Вы пытаетесь добавить класс [[Child]] в массив [[[Parent]]]

var arrChild2d:[[Parent]] = [[Parent]]()

Это работает

ответил(а) 2021-01-25T17:43:07+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема