[iOS/Swift] Selector란?

최정은·2023년 8월 24일
0

Swift

목록 보기
9/27

Selector

selector란?

사실 Selector는 원래 Objective-C에서 사용하던 기능으로 이는 특정 메서드를 컴파일타임에 동적으로 식별하고 참조하는 역할을 한다. 이러한 특징을 기반으로 Objective-C에서 동적으로 메서드를 동작시키려할 때 Selector를 사용한다.

UIKit 에서 사용해야 하는 이유!

UIKit 내부의 Objective-C 런타임으로 실행되는 메서드가 셀렉터를 파라미터로 전달받을 때, 전달에 필요한 셀렉터 인스턴스를 생성하려고 사용한다.

컴파일 타임에 메서드를 바인딩하는 Swift와는 다르게 Objective-C는 런타임에 메서드를 바인딩한다. 따라서 Swift에서 Objective-C에 의존적인 메서드에 사용할 때는 해당 메서드가 Objective-C와 유사한 방식으로 컴파일 되어야함을 컴파일러에게 알려주어야 한다.

사용하는 방법

@objc를 메서드 앞에 붙여주면 Swift로 작성된 코드를 Objective-C 런타임에서도 사용할 수 있다. (cf. 만약 class가 NSObject를 상속하고 있는 경우 해당 키워드가 필요없음)

0개의 댓글