iOS 캠프 TIL - 2020.11.17 화
iOS 스타터 캠프 TIL #10 - 2020.11.17 화요일
학습노트
Swift 접근제어
2주차 리뷰시간에 타입 요소의 기본 접근 수준 퀴즈를 틀리고서 찾아봤다.
- open
- 범위: 모듈 외부까지
- 클래스에서만 사용 (이 클래스를 다른 모듈에서도 상속, 멤버 재정의 가능)
- open으로 명시한 클래스는 다른 모듈에서도 부모클래스로 사용하겠다는 목적으로 설계했음을 의미
- public
- 범위: 모듈 외부까지
- 주로 프레임워크에서 외부와 연결된 인터페이스 구현에 사용
- 스위프트의 기본요소가 public으로 구현됨
- internal
- 범위: 모듈 내부
- 기본값
- 소스파일이 속해있는 모듈내 어디서든 사용가능
- 단, 이 모듈을 가져다 쓰는 외부 모듈에서는 접근 불가
- fileprivate
- 범위: 소스파일 내부
- 소스파일 외부에서 값 변경이나 함수가 호출되면 않되는 경우에 사용
- private
- 범위: 기능 정의 내부
- 같은 타입 내부(익스텐션까지)에서만 접근 가능
- 저장 프로퍼티 값을 변경할 수 없도록 하려면?
- 설정자(Setter)만 더 낮은 수준으로 제한 가능
- ex) internal private(set) var property: Int = 0
- 참고
Leave a comment