Вот классическая версия вопроса на собеседовании:
class MyViewController: UIViewController {
var completion: (() -> Void)?
override func viewDidLoad() {
super.viewDidLoad()
completion = {
self.doSomething()
}
}
func doSomething() {
print("Doing something")
}
deinit {
print("MyViewController deinitialized")
}
}Интервьюер спрашивает: «Почему MyViewController может никогда не быть деалоцирован?»
В этот момент 90% кандидатов отвечают:
«Вам следует использовать
weak self».Неверно.
Не потому, что этот ответ неверный, а потому, что он неполный. Этот вопрос не о том, как исправить. Он о том, как обосновать свой ответ.
Статья: https://apptractor.ru/info/articles/vopros-s-sobesedovaniya-na-kotorom-sypyatsya-90-ios-razrabotchikov-dazhe-senior-y.html
Платформа: iOS/Swift
AppFiles: код, инструменты, практики, производительность
