유형 주조 제네릭 :애플 스위프트 : 나는 일반적인 유형을 포함하는 배열을 좀 스위프트 코드를 쓰고 있어요
let _data: Array<T> = T[]()
나중에 내 코드에서 나는 배열에 저장된 유형을 결정해야합니다. documentation에 설명 된 형식 캐스팅 기술을 사용해 보았습니다 (generics에는 사용되지 않았지만).
switch self._data {
case let doubleData as Array<Double>:
// Do something with doubleData
case let floatData as Array<Float>:
// Do something with floatData
default:
return nil // If the data type is unknown return nil
}
컴파일시 다음과 같은 오류에 위의 switch 문 결과 :
- While emitting IR SIL function @_TFC19Adder_Example___Mac6Matrix9transposeUS_7Element__fGS0_Q__FT_GSqGS0_Q___ for 'transpose' at /code.viperscience/Adder/src/Adder Library/Matrix.swift:45:3 :0: error: unable to execute command: Segmentation fault: 11 :0: error: swift frontend command failed due to signal (use -v to see invocation) Command /Applications/Xcode6-Beta2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 254
누구 내가 특정 작업을 수행하기 위해 실제 유형 내 일반 데이터를 주조하는 방법을 알아?
'있는 그대로 사용 하시겠습니까? '하지만 귀하의 경우에는 컴파일러 버그라고 생각합니다 ... 신고하십시오! – Jack
옵션을 시도했지만 작동하지 않았습니다. 아마 컴파일러 버그에 동의한다. 그것은 제네릭에 관해서 본 주먹 하나가 아닙니다 ... – nalyd88