【发布时间】:2019-05-29 14:46:08
【问题描述】:
我无法从我的子类访问属性。我已经定义了超类,然后我创建了从超类继承的子类。我在我的子类中初始化了我的超类。
我有一个名为 Box 的课程。在这个类中,我有一个名为 OfferType 的属性。
var Offer: OfferType?
我创建了 OfferType 类并在其中设置了一些属性。
class OfferType {
var Name: String?
var Image: UIImage?
var Description: String?
init(Name: String, Image: UIImage, Description: String) {
self.Name = Name
self.Image = Image
self.Description = Description
}
}
比我创建了 OfferType 的 3 个子类
class Discount: OfferType {
var Quantity: Int?
init() {
super.init(Name: "Discount", Image: UIImage(named: "Discount")!, Description: "nice")
}
}
class FreeShipping: OfferType {
var From: String?
var To: String?
init() {
super.init(Name: "FreeShiping", Image: UIImage(named: "FreeShipping")!, Description: "lalaa")
}
}
class BoGoF: OfferType {
lazy var SecondProduct = String()
init() {
super.init(Name: "BoGoF", Image: UIImage(named: "BoGoF")!, Description: "boh")
}
}
现在我试图在将子类分配为 BOX 类中的属性 Offer 之后获取子类的属性。
我做不到,Xcode 给我的唯一选择是访问超类(OfferType)的属性
我需要访问子类 Discount 的属性 Quantity。
这是我试图访问属性的地方
首先我将子类分配给类 Box 中的属性
newBox.Offer = 折扣
现在我正在尝试获取折扣的属性,但它没有给我
newBox.Offer。
我尝试过,但没有成功
我的类 newbox 是这样定义的
这就是 Box 类的定义方式
【问题讨论】:
-
编辑这个并向我们展示你在说什么。我在这里看到了这些类,这是一个很好的开始,但我看不到您试图访问任何属性的位置。我想我知道你在说什么,这是一个快速的解决方法,但是,你能告诉我们吗?
-
刚刚编辑
-
向我们展示 newBox.offer 是如何定义的。没关系,看我的回答。
标签: swift class inheritance subclass