[Swift] 익스텐션과 접근 제어

2023. 2. 9. 11:51·Apple/Swift
728x90
반응형

1. 익스텐션(extension)

  • 스위프트 클래스, 구조체, 열거형, protocol에 새로운 기능을 추가
  • 익스텐션은 하위 클래스를 생성하거나 참조하지 않고 기존 클래스에 메서드, 생성자(initializer), 계산 프로퍼티 등의 기능을 추가하기 위하여 사용한다.
  • 스위프트 언어의 built-in클래스와 ios 프레임워크에 내장된 클래스에 기능을 추가할 때, 익스텐션을 이용하면 매우 효과적이다.
  • 클래스(구조체, 열거형, protocol)는 다음과 같은 형태로 확장(익스텐션)된다.

extension

 

 

2. 접근 제어(access control, access modifier)

  • 접근 속성(접근 수정자, 액세스 수정자, 액세스 지정자)는 클래스, 메서드, 멤버의 접근 가능성을 성정하는 객체지향언어의 키워드이다.
  • 구성 요소를 캡술화 하는 데 사용한다.

  • 모듈은 코드 배포(code disrtibytion)의 단일 유닛이다.
  • open 접근 및 public 접근을 통해 모듈의 모든 소스 파일 내에서 사용할 수 있으며, 정의한 모듈을 가져오는 다른 모듈의 소스파일에서도 사용할 수 있다. 일반적으로는 Framwork에 공용 인터페이스를 지정할 때는 open 또는 public 접근을 사용한다.
  • (open 접근은 클래스 및 클래스 멤버에만 적용)
  • internal 접근은 해당 모듈의 모든 소스 파일 내에서 사용되지만, 해당 모듈 외부의 소스 파일에서는 사용되지 않도록 한다. 일반적으로 App이나 Framwork의 내부 구조를 정의할 때 internal 접근을 사용한다.(접근 제어를 생략하면 internal이 기본이다)
  • fileprivate 접근은 해당 소스 파일 내에서만 사용 가능하다.
  • private접근은 블록과 동일한 파일에 있는 해당 선언의 extension으로 제한한다.
728x90
반응형
저작자표시 (새창열림)

'Apple > Swift' 카테고리의 다른 글

[Swift] 열거형(enum)  (0) 2023.02.12
[Swift] 프로토콜(protocol)  (0) 2023.02.11
[Swift] 클래스와 상속, super와 override  (0) 2023.02.08
[Swift] computed property, stored property, self, overloading  (0) 2023.02.01
[Swift] 클래스, 객체, 인스턴스  (0) 2023.01.31
'Apple/Swift' 카테고리의 다른 글
  • [Swift] 열거형(enum)
  • [Swift] 프로토콜(protocol)
  • [Swift] 클래스와 상속, super와 override
  • [Swift] computed property, stored property, self, overloading
P_Piano
P_Piano
Apple 생태계 개발자가 되기 위한 학습과 경험의 기록
    반응형
    250x250
  • P_Piano
    피피아노의 개발 일지
    P_Piano
  • 전체
    오늘
    어제
    • 분류 전체보기 (209)
      • Apple (127)
        • iOS (22)
        • visionOS (4)
        • Swift (68)
        • UIKit (2)
        • SwiftUI (24)
        • RxSwift (2)
        • Xcode (5)
      • C언어 (5)
      • C++ (8)
      • Dart (1)
      • Python (3)
      • JavaScript (17)
      • Git (1)
      • CS (39)
        • 디자인 패턴 (6)
        • 네트워크 (20)
        • 운영체제 (8)
        • Database (5)
        • 자료구조 (0)
      • IT 지식 (2)
      • IT 뉴스 (4)
      • 출처 표기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    함수
    자바스크립트
    배열
    스위프트
    이니셜라이저
    티스토리챌린지
    변수
    디자인패턴
    swiftUI
    클래스
    visionOS
    운영체제
    프로그래머스
    combine
    UIKit
    제어문
    오블완
    Vision Pro
    프로퍼티 래퍼
    SWIFT
    Xcode
    연산자
    ios
    프로세스
    Apple
    네트워크
    Initializers
    비동기
    코딩테스트
    옵셔널
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
P_Piano
[Swift] 익스텐션과 접근 제어
상단으로

티스토리툴바