iOS 캠프 TIL - 2020.11.17 화

Updated:

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