从超类覆盖自定义init

时间:2015-03-01 11:18:17

标签: swift

我试图在我的代码中覆盖自定义init,因为您可以看到我正在使用默认和自定义init创建Player

class Player{
    //Properties
    var name : String
    var score : Int

    //Methods
    func description() -> String{
        return( "Player \(name) has score \(score)")
    }

    //Default Initiallizer
    init(){
        name = "Sohrab"
        score = 0
    }

    //Custom Initializer
    init(name : String, score : Int){
        self.name = name
        self.score = score
    }
}

及以下我创建PremierPlayer

class PremierPlayer : Player {
    //Properties
    var memberLevel : String
    //Method
    override func description() -> String {
        let originalMessage = super.description()
        return ("\(originalMessage) is a \(memberLevel)")
    }
    //Default Initilizer
    override init() {
        memberLevel = "Gold"
        super.init()
    }
    //Custome Initilizer
    init(name: String, score: Int, memberLevel:String) {
        self.memberLevel = memberLevel
        super.init(name: <#String#>, score: <#Int#>)
    }
}

在排队super.init(name: <#string#>, score: <#Int#>)我收到错误ISSUE expected ',' separator

我该怎么办?

1 个答案:

答案 0 :(得分:0)

您(当前版本)问题的格式相当混乱,但如果您在谈论这一行:

super.init(name: <#String#>, score: <#Int#>)

...那么您应该将<#String#>替换为String<#Int#>的{​​{1}}类型。那些&lt;#...#&gt;是XCode自动注入代码的占位符,您可以用合理的东西替换它们。