Unicorn 클래스 (NSObject에서 상속)를 관찰해야하지만 비즈니스상의 이유로 관측 가능한 속성을 갖기 위해 적절한 대응 프레임 워크를 사용할 수 없습니다. KVO로 폴백해야합니다 (신이 도와주세요).Swift 클래스에 정적 구조체를 포함하는 방법은 무엇입니까?
"stringly-typed"하지 않도록하려면 observableKeyPaths라는 정적 속성을 도입하여 실제로는 KOK-observable 인 모든 keyPath를 도트 표기법을 사용하여 제공 할 생각입니다.
예를 들어 보겠습니다. Unicorn 클래스는 KVO 될 수있는 status
속성을 가지고 있습니다. 이 구조체는 참조 할 수
struct UnicornObservableKeyPaths {
static let status = "status"
}
:
unicornInstance.addObserver(self, forKeyPath: Unicorn.observableKeyPaths.status ...etc..)
내가 이런 구조체 가지고 올 수 : 내 관찰자를 설정 될 때 그런 다음,이 같은 키 패스를 참조 할 것 쉽게 :
UnicornObservableKeyPaths.status
그러나이 구조체를 클래스의 일부로 만들려면 어떻게해야합니까? 다음 나를 위해 작동하지 않습니다 :
class Unicorn {
dynamic private(set) var status: String
static let observableKeyPaths: UnicornObservableKeyPaths = UnicornObservableKeyPaths()
}
어떤 아이디어? 내가 여기서 무엇을 놓치고 있니? 나는 정적 property..I이 struct..why이
Unicorn.observableKeyPaths
아니라 status
정적 멤버에 액세스 할 수 있습니다 참조 할 때?
마 Swift 3'# keyPath' 표기법에 대해 알고 있습니까? – matt
지금 해. 고맙습니다. –