讓我們下面的一段代碼:爲什麼類型不符合協議?
protocol ItemView {
var image: UIImage? { get set }
}
class BaseController<T: UIView where T: ItemView>: UIViewController {
var itemView = T()
}
class ConcreteItemController: BaseController<UIImageView> {
}
對於BaseController我得到一個錯誤信息說「類型‘的UIImageView’不符合協議‘ItemView控件’」。
但是爲什麼?
同樣的錯誤信息顯示出來當我這樣做,而不是:
typealias ConcreteItemController = BaseController<UIImageView>
我真的失去了一些東西在這裏...爲什麼會在UIImageView的不符合ItemView控件協議?它有一個可選的圖像屬性..所以問題在哪裏?
'UIImageView'沒有聲明它符合'ItemView' – beyowulf
噢!我認爲沒有宣佈它就足夠符合了....爲什麼你不把這個作爲正確的答案,以便我可以給你10個學分。 –