> Что такое селектор в iOS и как работает target-action? (iOS, Swift)
Уровень: junior · Роль: mobile · Категория: Технические вопросы
Компании: MTS
Стек: iOS, Swift
> Пример ответа
Селектор (Selector) в iOS - это тип, представляющий имя метода в Objective-C, который может быть вызван динамически во время выполнения. В Swift селекторы используются с помощью #selector(MyClass.myMethod) и позволяют ссылаться на метод без его немедленного вызова.
Механизм target-action - это паттерн, при котором один объект (например, кнопка) отправляет сообщение (action) другому объекту (target) при наступлении события (например, нажатия). Работает так:
-
Вы задаёте target (объект, который обработает событие) и action (селектор метода, который будет вызван).
-
При наступлении события (например,
UIControl.Event.touchUpInside) система вызываетobjc_msgSend(target, action, sender). -
Метод target'а получает параметр
sender- объект, инициировавший событие.
Пример в Swift:
SWIFTbutton.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside)@objc func buttonTapped(_ sender: UIButton) {print("Кнопка нажата")}
Ключевые моменты:
-
Селектор - это просто имя метода, не привязанное к конкретной реализации.
-
Target-action обеспечивает слабую связанность: отправитель не знает, кто и как обработает событие.
-
В Swift методы, используемые в
#selector, должны быть помечены@objcи быть доступны для Objective-C runtime.
> Похожие задачи по mobile
Работали ли с подписками и покупками через StoreKit или другие сервисы
Приходилось ли определять органических и неорганических пользователей в приложении
На каких архитектурах писали и какие плюсы и минусы вы видите
Как относишься к прохождению полиграфа с общими вопросами?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью