iOS

[iOS] 셀렉터(Selector)란

devharrry 2018. 5. 2. 15:49

# 셀렉터(Selector) - 함수를 직접 지정하는 기능을 가진 일종의 함수 선택자


Selector는 본래 Objecive-C에서 클래스 메소드의 이름을 가르키는 데 사용되는 참조 타입입니다.

동적 호출 등의 목적으로 @selector() 어트리뷰트 메소드 이름을 인자값으로 넣어 전달하면 이를 내부적으로 정수값으로 매핑해서 처리하는 형태입니다. 이것이 Swift로 넘어오면서 구조체 형식으로 정의되고, #selector()구문을 사용하여 해당 타입의 값을 생성할 수 있게 되었습니다. 


Swift4부터는 Selector 타입으로 전달할 메소드를 작성할 때 반드시 @objc 어트리뷰트를 붙여주어야 합니다. 이는 Objective-C와의 호환성을 위한 것으로, Swift에서 정의한 메소드를 Objective-C에서도 인식할 수 있게 해 줍니다.


참고 : 꼼꼼한 재은씨의 스위프트 실전편

잘못된 부분 있으면 댓글 달아주세요.