이 포스트는 야곰님의 Swift 프로그래밍 2판을 보고 스스로 공부한 내용을 정리한 포스트 입니다.


예제 코드


참고 자료


private와 fileprivate

  • 같은 파일 내부에서 private 접근수준과 fileprivate 접근수준은 사용할 때 분명한 차이가 있다.

    • fileprivate 접근수준으로 지정한 요소는 같은 파일 어떤 코드에서도 접근할 수 있다.

    • private 접근수준으로 지정한 요소는 같은 파일 내부에 다른 타입의 코드가 있더라도 접근이 불가능하다.

      • 그러나 자신을 확장하는 익스텐션 코드가 같은 파일에 존재하는 경우 접근할 수 있다.

같은 파일에서의 private와 fileprivate의 동작

privateAndFileprivateExampleImage-1


읽기 전용 구현

  • 구조체 또는 클래스를 사용하여 저장 프로퍼티를 구현할 때는 허용된 접근수준에서 프로퍼티 값을 가져갈 수 있다.

  • 값을 변경할 수 없도록 구현 또는, 서브스크립트도 읽기만 가능하도록 제한할 수 있다.

    • 위와 같이 하고 싶을 때는 설정자(Setter)만 더 낮은 접근수준을 갖도록 제한하면 된다.

      • 요소의 접근수준 키워드 뒤에 '접근수준'(set) 처럼 표현하면 설정자의 접근수준만 더 낮도록 지정해줄 수 있다.
  • 설정자(Setter) 접근수준 제한은 프로퍼티, 서브스크립트, 변수 등에 적용될 수 있으며, 해당 요소의 접근수준과 같거나 혹은 보다 낮은 수준으로 제한해주어야 한다.


설정자(Setter)의 접근수준(Access Level) 지정

privateAndFileprivateExampleImag-2 privateAndFileprivateExampleImage-3