728x90
반응형
1. 익스텐션(extension)
- 스위프트 클래스, 구조체, 열거형, protocol에 새로운 기능을 추가
- 익스텐션은 하위 클래스를 생성하거나 참조하지 않고 기존 클래스에 메서드, 생성자(initializer), 계산 프로퍼티 등의 기능을 추가하기 위하여 사용한다.
- 스위프트 언어의 built-in클래스와 ios 프레임워크에 내장된 클래스에 기능을 추가할 때, 익스텐션을 이용하면 매우 효과적이다.
- 클래스(구조체, 열거형, protocol)는 다음과 같은 형태로 확장(익스텐션)된다.
2. 접근 제어(access control, access modifier)
- 접근 속성(접근 수정자, 액세스 수정자, 액세스 지정자)는 클래스, 메서드, 멤버의 접근 가능성을 성정하는 객체지향언어의 키워드이다.
- 구성 요소를 캡술화 하는 데 사용한다.
- 모듈은 코드 배포(code disrtibytion)의 단일 유닛이다.
- open 접근 및 public 접근을 통해 모듈의 모든 소스 파일 내에서 사용할 수 있으며, 정의한 모듈을 가져오는 다른 모듈의 소스파일에서도 사용할 수 있다. 일반적으로는 Framwork에 공용 인터페이스를 지정할 때는 open 또는 public 접근을 사용한다.
- (open 접근은 클래스 및 클래스 멤버에만 적용)
- internal 접근은 해당 모듈의 모든 소스 파일 내에서 사용되지만, 해당 모듈 외부의 소스 파일에서는 사용되지 않도록 한다. 일반적으로 App이나 Framwork의 내부 구조를 정의할 때 internal 접근을 사용한다.(접근 제어를 생략하면 internal이 기본이다)
- fileprivate 접근은 해당 소스 파일 내에서만 사용 가능하다.
- private접근은 블록과 동일한 파일에 있는 해당 선언의 extension으로 제한한다.
728x90
반응형
'Apple > Swift' 카테고리의 다른 글
[Swift] 열거형(enum) (0) | 2023.02.12 |
---|---|
[Swift] 프로토콜(protocol) (0) | 2023.02.11 |
[Swift] 클래스와 상속, super와 override (0) | 2023.02.08 |
[Swift] computed property, stored property, self, overloading (0) | 2023.02.01 |
[Swift] 클래스, 객체, 인스턴스 (0) | 2023.01.31 |