Хранение слабой ссылки на ячейку UITableView без утечек памяти - PullRequest
0 голосов
/ 08 ноября 2019

Я думаю, что правильно понимаю ключевое слово weak, но хотел быстро проверить, что я не делаю что-то не так.

Я хочу сохранить ссылку на конкретный UITableViewCell чтобы я мог вызывать функции или редактировать значения при необходимости. Теперь мне не нужно иметь возможность редактировать значения все время, только когда оно отображается на экране, поэтому мне не нужно постоянно хранить твердую копию ячейки. Я сделал следующее:

class customTableViewCell: UITableViewCell {
  var variable1: String?

  func doAThing(index: Int) {
    self.variable1 = "did a thing"
  }
}

class MainView: UIView {
  weak var cellToManipulate: CustomTableViewCell?

  func manipulateCell() {
    self.cellToManipulate?.doAThing(index: 1)
  }
}

Очевидно, что будет просмотр таблицы и все остальное, но если я сохраню слабую ссылку на ячейку, она будет удалена из памяти и установлена ​​в нолькогда таблица прокручивается правильно? Может быть, есть лучший способ сделать это, кроме forEach прохождения каждого элемента в массиве visibleCells?

...