Il seguente codice Swift si blocca ripetutamente il compilatore. Cosa mi manca?Errore con generici Swift e tipi associati
6
A
risposta
2
Ci sono state alcune buone discussioni sull'uso dei farmaci generici nei protocolli.
http://schani.wordpress.com/2014/06/03/playing-with-swift/
http://schani.wordpress.com/2014/06/11/associated-types-considered-weird
Questo secondo articolo è abbastanza illuminante per il vostro problema. In poche parole, swift non ha tipi generici per i protocolli. Spero che questo sia stato utile.
un arresto anomalo nel compilatore è sempre un bug, indipendentemente da come sia corretto o sbagliato il codice potrebbe essere – newacct
Sì, ma ciò non significa che il mio codice sia corretto (ho il sospetto che non lo sia) - se il codice è sbagliato, forse il codice giusto non manderà in crash il compilatore. E se il codice è corretto, allora ho bisogno di una soluzione alternativa per il bug del compilatore – igul222
Non so qual è il tuo obiettivo ma ciò che sta causando l'arresto è la linea "typealias ComponentType = FooComponent" I don ' Penso che sia necessario perché se si dichiara un alias di tipo semplice come "typealias T = Int" in Puntelli, è possibile utilizzarlo come tipo annidato di FooProps. In ogni caso, penso che non sia possibile utilizzare "typealias ComponentType = Component " Prova a eseguire questa stat "var ComponentType: FooProps.ComponentType = FooComponent()" e vedrai il programma eseguire in un ciclo infinito. –
ByteArtisan