enum PtzButton: Int {
case play = 1
case up = 2
case stop = 3
case left = 4
case none = 5
case right = 6
case zoomIn = 7
case down = 8
case zoomOut = 9
internal static let ptzActionMap: [PtzButton: PtzAction] = [
.up: .up,
.down: .down,
.left: .left,
.right: .right,
.zoomIn: .zoomIn,
.zoomOut: .zoomOut
]
var ptzAction: PtzAction? {
return PtzButton.ptzActionMap[self]
}
}
PtzAction
是一個模型枚舉。 PtzButton
是一個視圖綁定枚舉。 他們非常相似,但PtzButton
有不止一種情況。 必須注意,它們有不同的rawValue定義,我不應該改變它們。Swift 3:如何根據相同的名稱在枚舉之間進行映射?
所以,我的問題是:有沒有更好的方法來簡化ptzActionMap
的代碼?
我想這些重複碼是如此羅嗦:
[.up: .up,
.down: .down,
.left: .left,
.right: .right,
.zoomIn: .zoomIn,
.zoomOut: .zoomOut]
感謝您的回答,但我想它還不夠優雅。無論如何避免重複? –
我用第二個建議更新了答案。 – vadian