если вы поместите [слабое я] в верхнее закрытие, оно будет слабым для всех вложенных ... и затем рассмотрите безопасное развертывание, если вы не хотите, чтобы оно было необязательным в основном закрытии.
tableViewManager.textViewDidBeginEditing = { [weak self] textView, indexPath in
guard let self = self else { return } // optional...
asyncAfter(seconds: 0.5) {
let value = textView.tag // touched here
self?.tableView.scrollToRow(at: indexPath, at: .top, animated: true)
}
}
ОБНОВЛЕНИЕ:
Я думаю, что если tableViewManager будет освобожден, закрытие никогда не будет вызвано ... верно? поэтому не нужно беспокоиться о том, что textView не является обязательным. это параметр закрытия ... так что вы можете установить его только в объявлении закрытия.
ARC автоматически удалит замыкание, как только исчезнет ссылка на tableViewManager.