Swift3 – 더욱 세분화된 액세스 제어 수준

1400 단어
액세스 제어는 어떤 코드에 접근할 수 있고, 어떤 코드에 접근할 수 없는지를 제한할 수 있다.

테스트 환경


시스템 버전


10.11.5 Beta

Swift 버전


Xcode8 beta 6(swift 3.0)

모듈


Swift에서는 모듈을 사용하여 코드를 관리하고 각 모듈마다 명칭 공간을 지정하며 모듈 밖의 어떤 부분의 코드를 액세스 제어할 수 있는지 강제로 지정합니다.
모듈은 일반적인 Framework 또는 App bundle입니다.일부 일반적인 기능을 실현하거나 자주 사용하는 방법을 봉인하기 위해 우리는 코드를 Framework로 포장한다. 이 Framework는 모듈이라고 불린다. 다른 프로젝트나 Framework에 도입되든지 그 안의 모든 (속성, 함수 등)은 이 모듈에 속한다.
앞에서 소개한 Swift의 패키지 관리자가 최종적으로 프로젝트에 제공하는 것이 바로 Framework이고 이것이 바로 모듈이다.

액세스 수준


다음 액세스 수준에 대한 설명은 Xcode8 beta 6 및 이후의 Swift 버전에 적용됩니다(이전에는 public, internal, private
  • open은 자신의 모듈이나 응용 프로그램의 모든 실체에 접근할 수 있고 다른 사람도 이 모듈에 도입된 모든 실체에 접근할 수 있다.모듈 이외에 open 성명된 구성원 변수와 함수는override에 의해 가능합니다.원래public에 해당하며, 통상적으로 어떤 인터페이스나 프레임워크가 외부에서 사용될 때open급으로 설정된다.
  • public와 open의 의미는 대체적으로 같지만 성명된 구성원 변수와 함수는override에 의해 결정될 수 없습니다.
  • 인터넷은 자신의 모듈이나 응용 프로그램의 모든 실체에 접근할 수 있지만 다른 사람은 이 모듈의 실체에 접근할 수 없다.지정하지 않으면 기본값internal레벨입니다.
  • fileprivate는 일부 기능의 구현 세부 사항을 숨기는 데 사용할 수 있으며, 역할 영역은 현재 원본 파일입니다.원래private에 해당한다.
  • private는 현재 작용 영역 내에서만 작용할 수 있으며 이전보다 더private.같은 파일에서 extension에서도 private 수식에 접근할 수 없는 구성원 변수입니다.

  • Swift로 Framework의 iOSer를 개발하고 코드를 바꾸세요~

    좋은 웹페이지 즐겨찾기