김동준. 2024. 7. 25. 21:36

@objc는 Swift 프로그래밍 언어에서 사용되는 특수한 속성(Attribute)입니다. 이 속성은 Swift 코드와 Objective-C 코드를 상호 운용 가능하게 만들어줍니다. 

@objc Swift 프로그래밍 언어에서 사용되는 고유한 속성(property)입니다. 속성은 Swift 코드와 Objective-C 코드의 기능을 더욱 향상시킵니다. 주로 다음과 같은 상황에서 사용됩니다

Objective-C에서 Swift 클래스를 사용하는 경우: Swift 클래스를 Objective-C 코드에서 인식하고 사용할 있도록 하려면 @objc 특성을 사용하세요.

Dynamic Dispatch : @objc 속성은 동적 디스패치로 Swift 메서드를 호출하려고 사용됩니다. 이는 런타임에 메서드를 호출하여 Objective-C 런타임 기능을 활용합니다.

클래스와 메서드에 @objc 속성 사용

import Foundation

@objc class MyClass: NSObject {}

@objc Members

import Foundation

@objcMembers class MyClass: NSObject {}

Selector 사용 예시

button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)

위의 예에서 @objc 속성을 사용하여 ButtonTapped 메서드를 선택기로 지정할 수 있습니다.

@objc Swift Objective-C 간의 상호 운용성을 향상시키고 Swift 코드가 Objective-C 런타임 기능을 활용할 있도록 하는 중요한 도구입니다.