2015-04-03 4 views
1

Я использую наследование и нуждаюсь в доступе к переменной родителя.
Как я могу это достичь?Как можно получить доступ к суперклассу?

class EFPaymentObject: NSObject { 

    var price: NSString = "1200" 
    var title: NSString! 
    var desck: NSString! 
    var hasPass: Bool! 

    func getPrice() -> NSString() { 
     return price 
    } 
} 

class EFGoodsPayment: EFPaymentObject{ 

    var pay: NSString = "1" 
    var type: NSString = "3" 
    //var select_club_id: NSString = EFBuyBasket.sharedInstance.getClubId() 
    var goods: NSString = "" 
    var money = price  // doesn't work 
    var money = getPrice() // doesn't work either 
} 
+2

Вы не можете установить значение по умолчанию значение, которое относится к суперклассу. Вы можете получить доступ к свойствам суперкласса во время процесса инициализации. Обратитесь к книге программирования Swift – Paulw11

ответ

3

Если я храню ваш пример, вы можете получить доступ к price свойству суперкласса при инициализации ChildClass и установить значение по умолчанию для money как это:

class EFPaymentObject: NSObject { 

    var price: NSString = "1200" 
    var title: NSString? 
    var desck: NSString? 
    var hasPass: Bool? 

} 

class EFGoodsPayment: EFPaymentObject { 

    var pay: NSString = "1" 
    var type: NSString = "3" 
    var goods: NSString = "" 
    var money: NSString? 

    override init() { 
     super.init() 
     money = super.price 
    } 

} 


let payment = EFGoodsPayment() 
println(payment.money!)  // prints "1200" 
Смежные вопросы