Der folgende Code verwenden, um für mich bei Swift 3.2 zu arbeiten, aber mit der neuesten Version von Swift 4 bekomme ich einen seltsamen Fehler, den ich nicht verstehen kann.Generic Protokoll Swift 4 Fehler
Ich versuche, ein generisches Protokoll zu erstellen, wie so:
public protocol FactoryComponent {
associatedtype Argument
associatedtype Service
static var factory: (Resolver) -> (Argument) -> Service { get }
}
public extension FactoryComponent {
public typealias Factory = (Argument) -> Service
}
Und es hier mit:
public extension Container {
@discardableResult
public func register<Component: FactoryComponent>(
factory componentType: Component.Type
) -> ServiceEntry<Component.Factory> { // On this line the error shows
return self.register(componentType.Factory.self) { resolver in
componentType.factory(resolver)
}
}
}
Fehler:
'Komponente' hat kein Mitglied Typen benannt "Fabrik"; meinst du "Fabrik"?
Und natürlich die Auto-fix hilft nicht, da der Fehler ist nutzlos ...
ich ausgecheckt Swift 4 Brechen Veränderungen und sehen etwas Einbeziehung generische Protokolle nicht.
Kann mir jemand bitte verstehen, was das bedeutet?
Ein * eigenständiges * Beispiel wäre hilfreich. –