반응형
Extension은 기존에 존재하는 class, struct, enum 혹은 protocol 타입에 새로운 기능을 추가하고, 오리지널 소스 코드에 접근이 불가한 타입들도 확장해서 사용할 수 있다.
하지만 기존에 있던 함수를 override 할 수는 없다.
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 in Swift can:
- Add computed instance properties and computed type properties
- Define instance methods and type methods
- Provide new initializers
- Define subscripts
- Define and use new nested types
- Make an existing type conform to a protocol
** Extensions can add new functionality to a type, but they can’t override existing functionality.
Extension은 기존에 존재하는 class, struct, enum 혹은 protocol 타입에 새로운 기능을 추가하고, 오리지널 소스 코드에 접근이 불가한 타입들도 확장해서 사용할 수 있다. (String 같은 거에 Extension 으로 Date 변환 메서드 추가해서 사용하는거 말하는건가?)
- 연산 인스턴스 프로퍼티, 연산 타입 프로퍼티 추가
- 인스턴스 메서드, 타입 메서드 정의
- 이니셜라이저 추가
- 서브스크립트 정의 (이건 뭐임?)
- 새로운 중첩 타입 정의 및 사용 ??
- 프로토콜을 준수하도록 타입에 기능 추가 (생성한 class에 extension으로 UITableView 같은 프로토콜 채택해서 기능 추가하는 거 ?)
** Extension으로 타입에 새로운 기능을 추가할 수는 있지만, 기존 함수를 override 할 수는 없다.
Computed Properties
Extensions can add computed instance properties and computed type properties to existing types.
** Extensions can add new computed properties, but they can’t add stored properties, or add property observers to existing properties.
728x90
반응형
'Swift iOS 앱 개발 > Swift' 카테고리의 다른 글
[Swift] Generic에 대하여 (0) | 2023.01.12 |
---|---|
[Swift] 고차함수 map, compactMap (0) | 2023.01.11 |
[Swift] POP? (0) | 2023.01.07 |
[Swift] mutating? (0) | 2023.01.06 |
[Swift] Hashable이란? + Equatable 상속해야하는 이유? (0) | 2023.01.06 |