개념
- 메서드를 식별할 수 있는 고유의 이름을 말한다.
- 구조체 struct 타입이며, 컴파일 시간에 지정된다.
- UIKit 내부의 Objective-C 런타임으로 실행되는 메서드에서는 #Selector()를 파라미터로 전달 받는데, 이 때 (= 이 전달에) 필요한 인스턴스의 타입을 말한다.
- 함수 표기형 방식 (= 인자 레이블을 콜론(:)으로 구분하여 나열함) 으로 전달된다.
(일급 객체인 함수를 매개변수로 전달하기 때문 ...! )
사용 예시
- UI 요소에 Action 관련 @objc 함수를 Target으로 추가해줄 때 → #Selector() 타입 안에다가 넣어준다.
코드 예시
override func setTargets() {
super.setTargets()
[signInView.signUpButton, signInView.idTextField, signInView.passwordTextField].forEach {
$0.addTarget(self, action: #selector(textFieldDidChanged(_:)), for: .editingChanged)
}
}
@objc
private func textFieldDidChanged(_ textField: UITextField) {
signInView.signInButton.isEnabled = [signInView.idTextField, signInView.passwordTextField].allSatisfy { $0.hasText }
if signInView.signInButton.isEnabled {
signInView.signInButton.backgroundColor = UIColor.systemBlue
} else {
signInView.signInButton.backgroundColor = Const.Color.blue
}
}
'공부 > Swift, algorithm' 카테고리의 다른 글
[Swift] Hashable, Set, Dictionary (2) | 2022.04.26 |
---|---|
타입 메서드와 프로퍼티 (0) | 2022.04.14 |
MacOS (Xcode)에서 #include <bits/stdc++.h> 헤더 사용하기 (0) | 2022.01.28 |
퀵 정렬 (0) | 2021.08.26 |
버블정렬, 선택정렬, 삽입정렬 (0) | 2021.08.24 |
댓글