2014-12-04 2 views
3

이것이 작동하지 않는 이유가 있습니까? 참고 : 중첩되지 않은 사전 키는 열거 형으로 작동합니다.중첩 된 enum을 사전 키로 사용

var dict = Dictionary<OuterStruct.InnerEnum, String>() 

로 : 당신이 형식 유추를 사용하여 변수 유형을 지정 피할 수

var dict : [OuterStruct.InnerEnum: String] = Dictionary<OuterStruct.InnerEnum, String>() 

참고 :

struct OuterStruct 
{ 
    enum InnerEnum 
    { 
     case none 
     case a 
     case b 
    } 
} 

var dict : [OuterStruct.InnerEnum: String] = [OuterStruct.InnerEnum: String]() 

답변

4

당신은 사전을 인스턴스화하는 전통적인 방법을 사용하여 해당 문제를 해결할 수 있습니다 왜 속기 구문이 효과가 없는지에 대한 대답이 없습니다. 당신이 그것에 대해서 레이더 파일을 작성해야한다고 생각합니다. 구조체와 클래스로 InnerEnum을 돌리려고했는데 같은 오류가보고되었습니다.

+0

감사합니다. 네, 타입 유추에 대해서는 알고 있지만 때로는 컴파일러에 약간의 도움이 필요합니다. 레이다 파일. – user965972

+0

이 솔루션들 중 어느 것도 스위프트 3에서 작동하지 않는 것 같습니다. – Mark

+0

스위프트 3에 대한 솔루션으로 답변을 업데이트했습니다. – Mark