Piszę jakiś kod SWIFT gdzie mam tablicę zawierającą typ rodzajowy:Jabłko Swift: Rodzaj Castingi Generics
let _data: Array<T> = T[]()
Później w moim kodu muszę ustalić rodzaj przechowywanej w tablicy. Próbowałem używać techniki odlewania typu opisanej w documentation (chociaż nie była używana w przypadku generycznych).
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
}
Powyższe wyniki rachunku przełącznik w następującym błędem upon kompilacji:
- 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
ktoś wie jak mogę rzucić moje dane ogólne do jego rzeczywistego typu w celu podjęcia konkretnych działań?
Spróbuj użyć 'jak?' Ale myślę, że w twoim przypadku jest to błąd kompilatora ... zgłoś to! – Jack
Próbowałem opcji, ale nie działało. Zgadzam się prawdopodobnie z błędem kompilatora. To nie pierwsza z nich, którą widziałem w odniesieniu do generycznych ... – nalyd88