我正在做一些類和超類的測試。其中大部分都是有道理的,但有一件事(目前!),我不確定。我在我的超類中使用了一個枚舉,並且想在我的類中擴展它。我非常肯定我不能這麼做,但我不知道該怎麼做 - 建議將不勝感激,正如任何指向類的非常好的詳細鏈接的指針一樣。不能擴展枚舉;我應該用什麼來代替?
這裏的大概就是我想要做的事:
class basicSprite: SKSpriteNode {
// This is the super-class
enum state: Int {
Paused, Idle, Damaged, Dead
}
var currentState = state.Paused
....
}
class playerSprite: basicSprite {
extend enum state: Int {
// This should take the enum state from the super-class and
// add these 4 states, giving 8 in total
case MovingLeft, MovingRight, MovingUp, MovingDown
}
....
}
var newPlayer: playerSprite
newPlayer.state = MovingLeft
....
switch newPlayer.state {
case playerSprite.state.Idle: break
case playerSprite.state.MovingLeft: break
default: break
}
現在,據我所知道的,我不能做到這一點與枚舉 - 我應該怎麼用呢?或者如果我可以用enum做到這一點,怎麼樣?
感謝:-)
我會使用字符串值來表示狀態,例如case「Idle」: – Andy 2015-03-13 13:14:19
爲什麼不添加一個帶有隻讀實例和受保護構造函數的新類? – 2015-03-13 13:17:51
@ DanielA.White - 我沒有關注。如果你能向我展示一個例子,它會是一個很大的幫助! – Garry 2015-03-13 16:58:47