는이 같은 열거 있습니다Swift : enum을 키로 사용하여 해시 맵을 인코딩하는 방법은 무엇입니까?
enum Direction : String {
case EAST = "east"
case SOUTH = "south"
case WEST = "west"
case NORTH = "north"
}
을 그리고 키 등이 열거 방향을 사용하여 해시 MAP 인 변수라는 결과가 있습니다.
var result = [Direction:[String]]()
이 개체를 인코딩하여 멀티 페어 프레임 워크를 통해 다른 쪽에서 보내려고했습니다. 그러나 인코더에서는 오류가 발생합니다. 때문에 캐치되지 않는 예외 'NSInvalidArgumentException'응용 프로그램 종료, 이유는 *** : "인코딩 (NSCoder aCoder으로 :) :
aCoder.encode(self.result, forKey: "result")
오류는 말한다 '- [_ SwiftValue encodeWithCoder이 :] : 인식 할 수없는 선택 예를 0x17045f230로 전송 '
어떻게이 해시 맵을 인코딩 할 수 있습니까?감사합니다.
목표 - C 런타임을 기반으로 JAL의 의견NSCoding
기능에서 언급 한 바와 같이
주 (이것은 자바되지는!). 또한 해시 맵 (Hashmap)을 말할 때'Dictionary'를 참조한다고 가정합니다. 또한'var result = [Direction : [String]]'이 유효하지 않습니다. Swift,'var result = [Direction : [String]]()'또는'var result : [Direction : [String]]'을 의미 했습니까? – Hamish
다음은 중복 기사입니다. http://stackoverflow.com/questions/24562357/how-can-i-use-a-swift-enum-as-a-dictionary-key-conforming-to-equatable – mrabins
예, 저는 var result = [Direction : [String]]() – user6539552