728x90
반응형
익스텐션이란?
- 기존의 클래스, 구조체, 열거형, 프로토콜에 새로운 기능을 추가하는 기능
- 주로 외부에서 가져온 타입에 내가 원하는 기능을 추가하고자 할 때 익스텐션을 사용한다.
- 익스텐션은 모든 타입에 적용할 수 있다.
- 새로운 기능을 추가할 순 있지만 기존의 기능을 재정의(오버라이드) 할 순 없다.
익스텐션이 타입에 추가할 수 있는 기능
- 연산 타입 프로퍼티 / 연산 인스턴스 프로퍼티
- 타입 메서드 / 인스턴스 메서드
- 이니셜라이저
- 서브 스크립트
- 중첩 타입
- 특정 프로토콜을 준수할 수 있도록 기능 추가
/*
extention SomeType {
추가 기능
}
*/
extension Int {
var isEven: Bool {
return self % 2 == 0
}
var isOdd: Bool {
return self % 2 == 1
}
}
var number = 3
number.isOdd // true
number.isEven // false
extension String {
func convertToInt() -> Int? {
return Int(self)
}
}
var string = "0"
string.convertToInt() // 0
출처: [패스트캠퍼스] 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online.
728x90
반응형