185 похожих чатов

Всем привет! private lazy var myButton: UIButton = {

let button = UIButton(type: .system)
button.addTarget(self, action: #selector(myAction), for: .touchUpInside)
return button
}()
Вопрос: стоит ли делать "lazy var" для того что бы добавить таргет или делегата? Или лучше всетаки сделать let и добавлять таргеты и делегаты где то во вьюдидлоад?

8 ответов

26 просмотров

Так таргет можно добавить и в lazy var. Единственное отличие в выборе - бери lazy если собираешься работать со свойствами своего класса внутри замыкания lazy var)

let ты тут не сделаешь потому что self еще не available

andreysavie Rybalkin
Так таргет можно добавить и в lazy var. Единственн...

let с замыканиями можно везде где нет обращений к свойствам или самому объекту, который на тот момент еще не создан. Тогда только lazy var, а еще лучше private(set) lazy var.

Т-М Автор вопроса
🐈
let ты тут не сделаешь потому что self еще не avai...

Спасибо, это понятно. Имею ввиду насколько это верно делать lazy var для того что бы добавить таргет там же а не во вьюдидлоад

Т М
Спасибо, это понятно. Имею ввиду насколько это вер...

читал на стеке что вы общемто норм, делает код понятнее, разгружает viewDidLoad

Т-М Автор вопроса
🐈
читал на стеке что вы общемто норм, делает код пон...

да вот я про то же мне бы хотелось там же таргет добавлять и вот решил задать вопрос

Т М
Спасибо, это понятно. Имею ввиду насколько это вер...

Лучше во viewDidLoad не пихать такой функционал, он там будет излишним Все настойки, касающиеся конкретного объекта, должны храниться в его замыкании) А если надо что-то изменить - то создавать для этого конкретные методы )

Т М
да вот я про то же мне бы хотелось там же таргет д...

ну тут два варианта- либо lazy var либо во viewDidLoad. Имхо (я новичок в свифт так что мон мнение такое себе), ленивыми надо делать тяжелые объекты, к которым данные элементы UI не относятся. Тут же будет выигрыш за счет оптимизации let - я бы все внутреннюю конфигурацию вынес в лет, а обращения к свойствам в функцию вызываемую из viewDidLoad

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
7
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Карта сайта