2017-10-31 15 views
0

스위프트 3.2/4 KeyPath 유형에서 일반 자체 참조를 사용할 수없는 이유는 무엇입니까?Swift 3.2/4 KeyPath 유형에서 일반 자체 참조를 사용할 수없는 이유는 무엇입니까?

예 : // B이라고 표시된 줄의 주석 처리를 제거하지 않으면 아래 코드가 컴파일됩니다. 왜? 이유가 무엇인지에 따라 // B으로 표시된 줄은 typealias Path<T> = KeyPath<Self,T> 문으로 인해 // A이라고 표시된 줄과 정확히 일치해야합니다.

여기에 뭔가가 누락 되었습니까? 아니면이 빠른 컴파일러 버그입니까?

답변

0

루트, keypath를 선언하려면 키 꺽쇠 값, 꺽쇠 괄호 안의 값이 필요합니다. 그것은 Swift에서 타입을 가진 Array를 선언하는 것과 같습니다. 정상 작동 할 것입니다 :

var fooerPathB: F.Path<F, T> { get set } 
+0

위의 업데이트 된 코드 샘플을 참조하십시오. 어쨌든 내가 처음 붙여 넣었을 때, 은 StackOverflow iOS 앱에 의해 삭제되었습니다. 하지만 그래, 내가 사용하는 열쇠 경로 에 대한 typealias입니다 , 그래서 그것은 완전히 작동해야합니다 ... – CommaToast

+0

그것은 나를 위해 XCode9/Swift4 컴파일입니다 –

+0

내가 제공 한 업데이트 된 코드 샘플은 귀하의 Xcode에? – CommaToast