230519 Today I Learned (2)
@objc 키워드를 사용하는 이유?
처음 이 부분을 공부하게 된 계기는 버튼에 addTarget을 호출하고 버튼을 눌렸을 때 동작하는 함수를 만들어주는데 #selector에 넣어주어야 하는 함수는 @objc 키워드가 붙은 함수여야만 했습니다.
그래서 왜 그런지 궁굼해서 공부를 하게 되었습니다.
Overview
✅ '@objc' 키워드는 Swift 코드가 Objective-C 코드와 상호 작용하도록 하기 위한 것입니다.
✅ 이것은 Objective-C 런타임에 접근하거나 Objective-C 코드와 상호 작용하는 기능을 제공합니다.
'@objc'를 사용하는 주요 이유
- Objective-C와의 상호 운용성
- Swift는 Objective-C와 함께 작동하도록 설계되었습니다.
- 이 둘 사이의 통신을 가능하게 하려면 Swift 코드가 Objective-C 런타임에 접근할 수 있도록 해야합니다.
- 이를 위해 Swift는 '@objc' 키워드를 사용하여 이러한 접근을 가능하게 합니다.
- Objective-C 코드에서 Swift 메소드를 호출
- Swift 메소드를 Objective-C 코드에서 호출하려면 해당 메소드에 '@objc'를 사용하여 표시해야 합니다.
- 이것은 메소드가 Objective-C 코드에 의해 볼 수 있도록 만듭니다.
- Objective-C API와의 상호 작용
- Objective-C로 작성된 많은 프레임워크와 API가 있습니다. 이들과 상호 작용하려면, Swift 코드에서 '@objc' 키워드를 사용하여 Swift 클래스, 메소드, 프로퍼티를 Objective-C와 호환되도록 해야 합니다.
- Selector 및 Key-Value Observing(KVO)
- Objective-C의 런타임 기능인 Selector와 KVO를 Swift에서 사용하려면 '@objc' 키워드를 사용해야 합니다.
그러나 모든 Swift 기능이 Objective-C와 호환되지는 않습니다.
따라서 '@objc'는 Swift 기능이 Objective-C 런타임에 완전히 호환되도록 보장하는 것은 아닙니다.
기능에 따라서는 이 키워드를 사용할 수 없을 수 있습니다.