본문 바로가기
Swift

[Swift] Extension에서의 Override

by Sky Titan 2022. 10. 1.
728x90
 

Extension 에서 Override 하기

안녕하세요. 피더입니다. 오늘은 Extension과 Override에 대해 알아보도록 하겠습니다. Extension 이란 Extension은 구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가할 수 있는 기능입니다. 클

feather.tistory.com

 

Extensions — The Swift Programming Language (Swift 5.7)

Extensions Extensions add new functionality to an existing class, structure, enumeration, or protocol type. This includes the ability to extend types for which you don’t have access to the original source code (known as retroactive modeling). Extensions

docs.swift.org

Extension에서의 Override 

NOTE
Extensions can add new functionality to a type, but they can’t override existing functionality.
  • 기본적으로 Apple에서는 Extension 안에서의 메소드나 property의 override를 금지하고 있다.
  • 하지만 method나 property가 Objective-C와의 호환성을 가지고 있다면 컴파일러에서 override를 허용한다.
    • 하지만 추천되지 않음
  • Extension에서 Override가능한 method 만드는 법
    • @objc를 붙여서 Objective-C와의 호환이 가능한 메서드임을 알림
    • dynamic을 붙여서 override가 가능한 메서드임을 알림

Objective-c와의 호환성이 없는 메소드는 override 불가
@objc dynamic 키워드 붙이면 가능

 

728x90

댓글