1. addTarget(_:action:for:)
- iOS 2.0부터 사용한 오래된 메서드
- Objective-C 런타임을 사용한다
- 셀렉터(Selector)를 통해 메서드를 호출
- 여러 개의 타겟과 액션을 추가할 수 있다
- 주관적: 익숙해서 그런지 addAction보다 좀 더 편함
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
@objc func buttonTapped() {
}
2. addAction(_:for:)
- iOS 14.0부터 도입된 메서드
- Swift의 클로저를 사용
- 타입 안전성이 보장된다
- UIAction 객체를 사용하여 더 많은 컨텍스트 정보를 제공할 수 있다
button.addAction(UIAction { _ in
}, for: .touchUpInside)
선택 기준
- iOS14 이상을 타겟으로 하는 경우, 아예 새로운 프로젝트일 경우 addAction을 사용하는 것이 좋다.
- 14 이전 버전을 지원해야하는 경우와 이전부터 쌓여온 팀의 코딩 스타일 규칙이 있다면 addTarget을 사용하는게 일관성 면에서 좋다.