Во-первых, извинения, если вопрос не имеет смысла, было сложно описать его правильно! Я довольно уверен в Objective-C, но для нового проекта мне пришлось взять Swift (что-то я очень опасался).Почему переменные клонов все еще влияют на исходный объект? SWIFT
В любом случае, я заметил что-то в простом учебнике tableViewController, который сводит меня с ума.
Сначала создается новый класс для каждой строки с переменной «text» и «checked». Затем массив состоит из объектов этого класса для заполнения строк таблицы.
Но в коде Tutorial производителя, он изменяет свойство «проверил» конкретной строки с помощью:
let item = items[indexPath.row]
item.checked = !item.checked
Где items[indexPath.row]
просто выбирает нужный объект в массиве items
. Это где я запутался, конечно, первая строка создает объект NEW clone, который никоим образом не связан с объектом в массиве?
Однако, при изменении любого из переменных item
«s (например, как это меняет состояние item.checked
, что изменение применяется к исходному объекту массива items[indexPath.row]
который просто не имеет никакого логического смысла?
Конечно, я бы реализовать какая-то логика, чтобы это произошло, например:
items[indexPath.row] = item
чтобы применить все изменения в item
вернуться к исходному объекту Может кто-то пожалуйста, объясните это обратную связь, которая, по-видимому там
Спасибо заранее, надеюсь, я просто пропустил что-то простое!