class ArcaneCardVC: UIViewController {
var currentCard: ArcaneCardView?
}
class PostVC: ArcaneCardVC {
override var currentCard: PostCard?
// <===== This is what I want to do but cant
}
class ArcaneCardView: UIView {
}
class PostCard: ArcaneCardView {
}
这是我得到的错误:
无法覆盖“ArcaneCardView”类型的可变属性“currentCard”?具有协变类型“PostCard?”
另一种解决方案是每次我使用currentCard时都在代码中明确地执行此操作:
var card = currentCard as! PostCard
最佳答案
正确的方法是使用currentCard as! PostCard
的方法。
另一种选择是使用属性获取器
// inside PostVC
// Note the camel case on the 'C' makes it a different variable that the super class
var CurrentCard: PostCard {
get { return self.currentCard as! PostCard }
}
然后,您将使用
self.CurrentCard
而不是self.currentCard as! PostCard