Swift를 활용하여 iOS 어플리케이션을 개발하다 보면 반드시 보는 것들이 있다. 이때까지 정확한 의미와 왜 사용하는지 이유를 잘 몰랐지만, 이번에 확실히 집고 넘어가기 위해 포스팅을 한다.

logoutButton.addTarget(self, action: #selector(logoutButtonTapped), for: .primaryActionTriggered)


@objc func logoutButtonTapped(sender: UIButton) {
	// Something..
}



바로 selector와 objc에 관하여 알아보자.
먼저 @objc는 Swif를 Objective C와 UIKit에 연결한다는 말이다.
이는 Objective C의 런타임과 상호작용할 수 있다.
사실상 UIKit에 있는 모든 것은 Objective C로 작성이 된 것이고 프로그램의 런타임 또한 Swift가 아닌 여기에 있다.
그래서 Swift는 여기에 이 속성을 추가하지 않으면 Objective C에 관한 부분을 알 수가 없다.

selector는 Swift에서 Objective C의 메서드를 호출하거나 참조할 수 있게 한다.
즉, selector는 런타임에 실행할 메서드의 이름을 나타낸다.

addTarget과 같은 것은 option키를 누른 상태에서 마우스를 올리면 Summary가 나타나게 된다.
거기서 어떠한 일을 하는지 보면 좋을 것 같다.

전혀 어려운 개념도 아니었는데, 무엇을 의미하는지 정확하게 이해하지 않고 개발을 진행한 것에 대한 반성을 하게 되었다.

태그:

카테고리:

업데이트: