使用枚举在swift初始化期间设置属性

时间:2017-01-06 00:30:52

标签: swift enums

我想学习如何使用使用字符串的breakdances enum在初始化期间设置一个独特的天才舞蹈属性。我认为它会工作,但当我尝试在init中设置属性的不同变体时,我会得到编译错误,例如“为自己分配属性”等等。我已经没有想法,但我知道它可能是因为一些Cocoa类在初始化期间执行此操作,例如在选择首选样式时使用UITableView。

import Foundation

protocol canPlayAroundProtocol {
    func play()
}

protocol randomJungleActivity {
    func startUniqueJungleAct()
}

class Animals {
    static var animalPopulation: Int = 0

    var name: String!

    var energyLevel: Int = 100


    init(name: String) {
        self.name = name

        Animals.animalPopulation += 1

        print("Another animal has given birth, animal population is now \(Animals.animalPopulation)")
    }

    func makeSound() -> String{
        energyLevel -= 3
        return "null"
    }

    func eatFood() {
        energyLevel += 5

    }

    func sleep(){
        energyLevel += 10

    }

    static func junglePerformSoundOff(){


    }

    func bathroomSound(){


    }

    deinit {
        Animals.animalPopulation -= 1
    }
}

这是我的父类:

this

1 个答案:

答案 0 :(得分:2)

您只需要在初始化程序中添加一个新参数。

init(name: String, uniqueGiftedDance: Breakdances) {
    super.init(name: name)
    self.uniqueGiftedDance = uniqueGiftedDance
    Monkeys.monkeysPopulation += 1

}