我想学习如何使用使用字符串的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
答案 0 :(得分:2)
您只需要在初始化程序中添加一个新参数。
init(name: String, uniqueGiftedDance: Breakdances) {
super.init(name: name)
self.uniqueGiftedDance = uniqueGiftedDance
Monkeys.monkeysPopulation += 1
}