Target action TIL8

future0159 1월 7일 AM 11:19 7 0
future0159 Profile Image Level 9

Target-Action 디자인 패턴

객체는 이벤트가 발생할 때 다른 객체에 메시지를 보내는데 필요한 정보를 포함한다.
액션은 특정 이벤트가 발생했을 때 호출할 메서드를 의미한다.
타겟은 액션이 호출될 객체를 의미하며, 프레임워크를 포함한 모든 객체가 될 수 있으나, 보통 컨트롤러가 일반적이다.

Target과 Action을 지정하는 이유

특정 이벤트 발생시 호출해야 하는 메서드가 다양한 클래스에 동일한 이름으로 정의되어 있을수 있고, 이러한 상황에서 원하는 객체를 Target으로 지정하면 액션 실행할 객체를 상황에 따라 선택할 수 있다.

액션 메서드

@objc func doSomething(_ sender:Any) {

}

IBAction과의 차이점(실제 경험한 것들)

IBAction으로 구현했을 때, 구현 능력이 부족한진 몰라도 조건에 따라 modal을 띄우기도 하고, 못띄우기도 하는 상황에서 인터페이스 빌더에 비해서 Target-Action pattern이 용이하였다. 회사등에서 아직까지 objective-c를 통해서 과거에 만들어진 것들을 Swift로 전환하지 않고 사용하고 있는 터라,
지금의 공부를 바탕으로 새롭게 구현할만한 방법을 생각해내야 할 것 같다.

댓글