IOS- 9

김정현·2023년 3월 17일
0

IOS 개발공부 일지

목록 보기
9/27

접근제어

접근제어는 코드끼리 상호작용을 할때 파일 간 또는 모듈 간에 접근을 제한하는 기능이다.

  • 모듈: 배포할 코드의 묶음 단위. import 키워드를 사용해 불러온다.
  • 소스파일: 하나의 스위프트 소스 코드 파일을 의미.

접근수준

접근수준 키워드를 통해 특정 접근 수준을 지정할 수 있고, 프로퍼티, 메서드, 이니셜라이저, 서브스크립트 각각에도 접근수준을 지정할 수 있다.

접근수준키워드접근도범위
개방 접근수준open높음모듈 외부까지
공개 접근수준public모듈 외부까지
내부 접근수준internal모듈 내부
파일외부비공개 접근수준fileprivate파일 내부
비공개 접근수준private낮음기능 정의 내부
  • public: 구현된 소스파일 , 모듈, 등 모든곳에서 사용 가능하다. 외부와 연결될 인터페이스 구현하는데 많이 쓰인다.
  • open: 공개 접근수준 이상의 높은 접근수준이며 클래스와 클래스 멤버만 사용가능하다. 클래스를 개방 접근수준으로 명시하는 것은 그 클래스를 다른 모듈에서도 부모클래스로 사용하겠다는 목적이다.
  • internal: 기본적으로 모든 요소에 암묵적으로 지정하는 기본 접근수준이다. 소스파일이 속해 있는 모듈 내부에서는 어디에서든 사용가능하지만 그 모듈을 가져다 쓰는 외부 모듈에서는 접근이 불가하다.
  • fileprivate: 그 요소가 구현된 소스파일 내부에서만 사용가능하다.
  • private: 가장 한정적인 범위이다. 그 기능을 정의하고 구현한 범위 내에서만 사용이 가능하다.

-접근제어는 요소 앞에 지정해주기만 하면된다. internal은 기본 접근수준이므로 표기생략가능.

-접근제어는 상위 요소보다 하위 요소가 더 높은 접근수준을 가질 수 없다. 비공개 수준으로 정의한 구조체 내부의 프로퍼티로 내부수준이나 공개수준을 갖을 수 없다.

-함수에서는 타입의 접근수준보다 함수의 접근수준이 더 높게 설정될 수 없다.

읽기 전용 구현

값을 변경할 수 없도록 구현하고 싶다면 설정자만 더 탖은 접근수준을 갖도록 제한하면 된다.

접근수준(set)

0개의 댓글