let button = UIButton(type: .system)
button.addTarget(self, action: #selector(myAction), for: .touchUpInside)
return button
}()
Вопрос: стоит ли делать "lazy var" для того что бы добавить таргет или делегата? Или лучше всетаки сделать let и добавлять таргеты и делегаты где то во вьюдидлоад?
Так таргет можно добавить и в lazy var. Единственное отличие в выборе - бери lazy если собираешься работать со свойствами своего класса внутри замыкания lazy var)
let ты тут не сделаешь потому что self еще не available
let с замыканиями можно везде где нет обращений к свойствам или самому объекту, который на тот момент еще не создан. Тогда только lazy var, а еще лучше private(set) lazy var.
Спасибо, это понятно. Имею ввиду насколько это верно делать lazy var для того что бы добавить таргет там же а не во вьюдидлоад
читал на стеке что вы общемто норм, делает код понятнее, разгружает viewDidLoad
да вот я про то же мне бы хотелось там же таргет добавлять и вот решил задать вопрос
Лучше во viewDidLoad не пихать такой функционал, он там будет излишним Все настойки, касающиеся конкретного объекта, должны храниться в его замыкании) А если надо что-то изменить - то создавать для этого конкретные методы )
ну тут два варианта- либо lazy var либо во viewDidLoad. Имхо (я новичок в свифт так что мон мнение такое себе), ленивыми надо делать тяжелые объекты, к которым данные элементы UI не относятся. Тут же будет выигрыш за счет оптимизации let - я бы все внутреннюю конфигурацию вынес в лет, а обращения к свойствам в функцию вызываемую из viewDidLoad
Обсуждают сегодня