일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 클로저의 캡슐화
- swift
- font book
- weak var
- Xcode
- 서체관리자
- MKMapViewDelegate
- WeatherManager
- dispatchsource
- SwiftUI Boolean 값
- Required Reason API
- Timer
- addannotation
- MKMapItem
- 러닝타이머
- 한국어 개인정보처리방침
- UIAlertAction
- CoreLocation
- Startign Assignments
- 러닝기록앱
- AnyObject
- App Store Connect
- 영문 개인정보처리방침
- CLLocationManagerDelegate
- 단일 책임원칙
- RunningTimer
- Protocol
- xcode로 날씨앱 만들기
- weatherKit
- UICollectionViewFlowLayout
Archives
- Today
- Total
VesselWheel
확장(Extension)에 대해서 설명해주세요. 본문
기존 타입에 기능을 추가하는 수평 확장하는 개념으로 확장을 이용하여 structure, class, enum, protocol 타입에 새로운 기능을 추가할 수 있습니다.
외부에서 가져온 타입에 내가 원하는 기능을 추가하고자 할 때 확장을 사용할 수 있습니다.
확장으로 구현 가능한 것은 다음과 같습니다.
Extension으로 구현 가능한 것들:
- 새로운 계산된 속성(Computed Property) 추가
- 새로운 인스턴스/타입 메서드 추가
- 새로운 초기화(Initializer) 추가
- 프로토콜 채택(Protocol Conformance)
- 서브스크립트 추가(Subscripting)
- 중첩 타입(Nested Type) 추가
Extension으로 구현 불가능한 것들:
- 저장 프로퍼티(Stored Property) 추가: Extension으로는 저장 프로퍼티를 추가할 수 없습니다. 오직 계산된 프로퍼티만 추가할 수 있습니다.
- 기존 기능의 재정의(Override): 이미 존재하는 기능을 Extension에서 재정의(Override)할 수 없습니다. 상속과 재정의는 클래스에서만 가능합니다.
- 초기화 메서드(Initializer)의 재정의: Extension으로는 새로운 편의 초기화 메서드를 추가할 수 있지만, 기본 초기화 메서드 또는 지정 초기화 메서드를 재정의할 수는 없습니다.
- 기존 타입의 저장된 프로퍼티에 기본값 설정: Extension에서는 기존 타입에 저장된 프로퍼티에 기본값을 설정할 수 없습니다.
'Grammary in Swift' 카테고리의 다른 글
테이블 뷰에서 데이터를 표시하고 데이터 원본과 델리게이트 메서드를 사용하는 방법을 설명해주세요. (0) | 2024.03.28 |
---|---|
iOS에서 뷰(View)와 레이어(Layer)의 개념과 차이점에 대해 설명해보세요. (0) | 2024.03.22 |
옵셔널(Optional)에 대해서 설명해주세요. (0) | 2024.03.19 |
클래스와 프로토콜 (0) | 2024.03.18 |
구조체(Struct)의 mutating 키워드에 대해서 설명해주세요. (1) | 2024.03.15 |