Swift에서 속성이 외부 적으로는 읽기 전용이지만 속성을 소유 한 클래스 (및 하위 클래스)가 내부적으로 수정할 수있는 공통 패턴을 정의하는 일반적인 방법은 무엇입니까?
Objective-C에는 다음과 같은 옵션이 있습니다.
- 인터페이스에서 속성을 읽기 전용으로 선언하고 클래스 확장을 사용하여 속성에 내부적으로 액세스합니다. 이것은 메시지 기반 액세스이므로 KVO, 원 자성 등에서 잘 작동합니다.
- 인터페이스에서 속성을 읽기 전용으로 선언하지만 내부적으로 백업 ivar에 액세스합니다. ivar에 대한 기본 액세스가 보호되므로 하위 클래스도 값을 수정할 수 있지만 필드는 읽기 전용 인 클래스 계층 구조에서 잘 작동합니다.
Java에서 규칙은 다음과 같습니다.
- 보호 된 필드를 선언하고 공용 읽기 전용 getter (메소드)를 구현합니다.
Swift의 관용구는 무엇입니까?
var
가 컴파일 할 수있는 키워드를.)