일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Xcode
- Startign Assignments
- RunningTimer
- addannotation
- dispatchsource
- SwiftUI Boolean 값
- App Store Connect
- CLLocationManagerDelegate
- 단일 책임원칙
- 클로저의 캡슐화
- MKMapItem
- font book
- UIAlertAction
- 서체관리자
- WeatherManager
- weatherKit
- Protocol
- 한국어 개인정보처리방침
- weak var
- swift
- MKMapViewDelegate
- AnyObject
- 러닝타이머
- CoreLocation
- UICollectionViewFlowLayout
- xcode로 날씨앱 만들기
- 러닝기록앱
- Required Reason API
- 영문 개인정보처리방침
- Timer
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 |