반응형
접근 제한자 헝용 범위
private : 같은 클래스
fileprivate : 같은 소스 파일(.swift)
internal : 같은 모듈(framework) or 같은 프로젝트
public : 모듈 외부까지 가능
open : 모듈 외부, 상속 및 override가능(확장 가능)
선언하지 않을시 디폴트는 internal 접근 제한자
일반적으로 단일 대상으로 특정 앱을 만드는데, 이 앱의 접근은 앱의 모듈 외부에서 사용하게 만들 필요가 없다.
그렇기 때문에 기본값은 internal이다.
하지만, 외부에서 해당 모듈의 코드를 비공개 하고 싶은 경우 fileprivate이나 private 둘 중 하나로 설정해야한다.
클래스에 붙이는 접근 제한자의 의미는 살짝 다르다.
open class -> 다른 모듈에서 해당 클래스를 상속,override가 가능
public class -> 다른 모듈에서 접근만 가능하고 상속, override는 불가능
fileprivate class -> 해당 클래스의 프로퍼티, 함수, 반환 타입 모두 fileprivate
private -> swift4.0부터 private으로 선언해도 extension에서 접근 가능 ( 같은 파일에서만 가능)
반응형
'모바일앱 > iOS' 카테고리의 다른 글
강제업데이트의 로직 (0) | 2022.01.08 |
---|---|
Notification Center (0) | 2022.01.08 |
(뷰의 이동) push와 present (0) | 2022.01.06 |
(뷰의 이동) Segue를 연결하는 3가지 방법 (0) | 2022.01.05 |
싱글턴 프로그래밍 디자인 패턴 (0) | 2021.12.24 |
SceneDelegate를 사용하지 않을 때의 세팅 (0) | 2021.12.15 |
iOS에서 HTTP 접근 허용하기 (0) | 2021.12.15 |
Delegation Programming Design Pattern (0) | 2021.12.15 |