Lassen Sie uns das folgende Stück Code haben:Warum stimmt der Typ nicht mit dem Protokoll überein?
protocol ItemView {
var image: UIImage? { get set }
}
class BaseController<T: UIView where T: ItemView>: UIViewController {
var itemView = T()
}
class ConcreteItemController: BaseController<UIImageView> {
}
Für die Base ich eine Fehlermeldung, „Typ‚UIImageView ItemView ‚‘‘zu Protokoll nicht konform“ bin immer.
Aber warum?
gleiche Fehlermeldung angezeigt, wenn ich dies tun statt:
typealias ConcreteItemController = BaseController<UIImageView>
ich wirklich etwas fehlt hier bin ... warum sollte die UIImageView entsprechen nicht Protokoll ItemView? Es hat eine optionale Bildeigenschaft..so wo ist das Problem?
'UIImageView' deklariert nicht, dass es' ItemView' entspricht – beyowulf
Oh richtig! Ich dachte, es ist genug, um sich anzupassen, ohne es zu deklarieren .... warum gibst du das nicht als richtige Antwort, damit ich dir 10 Credits geben kann. –