2
Bitte diese Einstellung berücksichtigen:Swift Generika-Fehler: Kann nicht Wert vom Typ ‚Typ <T>‘ umwandeln zu erwarten Argument Typ ‚Typ <_>‘
protocol MyProcotol {
}
class MyModel: MyProcotol {
}
enum Result<T> {
case success(value: T)
case failure
}
class Test {
func test<T: MyProcotol>(completion: (Result<T>) -> Void) {
let model = MyModel()
let result = Result.success(value: model)
completion(result)
}
}
Warum kann ich nicht completion(result)
nennen? Ich erhalte diese Fehlermeldung:
Wert kann nicht vom Typ umwandeln ‚Ergebnis‘ zu erwarteten Argumenttyp ‚< Ergebnis _>‘
Jede Abhilfe?
das tun ist nicht, wie Generika arbeiten sollen. Wenn Sie das 'MyModel' fest codieren, löschen Sie das generische vollständig. Was passiert, wenn Sie eine zweite Implementierung von 'MyProtocol' erstellen und diese Methode aufrufen, indem Sie' Result 'erwarten? –
luk2302