2014-09-10 2 views
1

신속한 유형 특성에 대해 이해하려고합니다.Swift : 클래스의 계산 된 유형 속성

스위프트 프로그래밍 언어 만

그래서 계산 된 속성은 값 자체를 저장하지 않습니다 계산 된 유형의 속성을 정의 할 수 있습니다, 클래스에 대한

말한다 있지만 계산된다. 나는 그것을 이해한다. 그러나 나는 그러한 것들이 타입 프로퍼티에 어떻게 적용될 수 있는지 알지 못합니다. 이러한 속성은 인스턴스 자체가 아니라 클래스 자체에 속합니다.

이렇게 계산 된 유형 속성에 게터를 사용한다면 어떻게 계산할 수 있습니까? 그 (것)들은 또한 단지 계산 속성 일 수 있기 때문에 다른 유형 특성 일 수 없습니다. 저장된 유형 특성이 없기 때문에 일종의 계산 된 특성 루프를 얻을 수 있습니다.

같은 방식으로, 나는 또한 세터가 무엇을 할지를 알지 못한다. 계산 된 유형 속성의 setter를 호출하면 무엇을 설정할 수 있습니까? 설정할 수있는 저장된 유형 특성이 없습니다.

답변

2

저장된 클래스 속성은 현재 지원되지 않습니다. 당신이 그들을 사용하려고 할 때 컴파일러 오류가 발생했습니다 - "이 아닌 클래스 변수가 아직"- 제안되고 있습니다. 계산 된 클래스 속성이 일 때이있는 것은 아닙니다.

그러나 계산 된 속성이 항상 저장된 데이터의 값을 기반으로 할 필요는 없습니다. 약자로, 당신은 클래스와 연관된 "정적"읽기 전용 값을 사용할 수, 말 :

class var ThisIsAClassConstant: String { return "Woo" } 

그리고 사람들은 이미 처음 두에, 예를 들어 관련 값을 저장하는 방법으로 올라와있다 싱글 톤 패턴이 this answer 인 경우 class 속성은 전역 (그러나 사적인) 변수 나 중첩 구조의 정적 변수에 상태를 저장합니다.

이 코드는 분명히 약간 "workaroundy"이지만 공식적으로 구현되지는 않았지만 클래스와 비슷한 저장 공간을 확보하는 방법입니다.