Приложение делает больше, чем хотелось - PullRequest
0 голосов
/ 28 мая 2020

У меня есть контроллер представления панели вкладок с тремя вкладками. Я реализовал глобальный массив в этом контроллере tabBar, чтобы сделать его доступным со всех вкладок. Это массив типа [[[Any]]]. Я хотел изменить этот массив с первой вкладки, добавив элемент, но проблема в том, что вместо простого добавления элемента он также изменяет существующий элемент. Вы можете мне помочь, пожалуйста? Спасибо.

Вот определение массива:

var invoices: [[[Any]]] = []

Вот добавление:

let tabBar = tabBarController as! baseTabBarController
tabBar.invoices.append(cells)

PS: Добавление выполняется в подключенном контроллере представления к первому контроллеру представления (дочернему к контроллеру представления панели вкладок) по ссылке перехода.

1 Ответ

1 голос
/ 28 мая 2020

Вам действительно нужно предоставить больше информации, чтобы получить более персонализированные ответы.

Однако ваш массив представляет собой трехмерный массив , что означает, что у вас есть массив внутри массива внутри массива.

При выполнении метода append в массиве он всегда добавляет новый элемент в конец этого массива.

В вашем случае: Добавляемый элемент имеет тип [[Any]], который представляет собой двумерный массив .

ПРИМЕЧАНИЕ: Более размерные массивы немного сложны. . Ваш код добавляет новый two - dimensional - array в конец вашего внешнего массива, не добавляет новый Any к вашему внутреннему массиву!

Однако метод append никогда не будет измените существующие элементы, поэтому, пожалуйста, проверьте свой синтаксис еще раз, поскольку массивы большего размера - сложная задача.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...