enum Direction: String {
case up = "μ"
case down = "ν"
case left = "μ’"
case right = "μ°"
}
let direction: Direction = .right
print(direction.right)
/// print "μ°"
μ΄κ±°νμλ μμκ°(rawValue)μ΄ μμ΄ μμ μμμ²λΌ κ°μ caseλ³λ‘ κ°μ ν λΉν΄ νμν λ κΊΌλ΄ μ¬μ©ν μ μλ€. νμ§λ§ ν κ°μ§ μ μν μ μ, μ΄ μμκ°μ Literal νμ
λ§ κ°λ₯νλ€.
Literalμ 곡μλ¬Έμμμ "μ«μλ λ¬Έμμ΄ κ°μ νμ
μ κ° νν"μ΄λΌ μ€λͺ
λμ΄ μλ€. κ·Έλ λ€κ³ νμ
μ κ°κ³ μμ§λ μλ€. νμ§λ§ literalμ μμ£Όμμ£Ό μ ννμ¬ Swiftμ νμ
μΆλ‘ κΈ°λ₯μ μ¬μ©ν΄ νμ
μ΄ μΆλ‘ λλ€. λ°λΌμ Literalμ Swift νμ€ λΌμ΄λΈλ¬λ¦¬μμ μ 곡νλ νμ
μ μ€μν΄μΌνλ€. μ¦ μ΄κ±°νμ μμκ° νμ
μ νμ€ λΌμ΄λΈλ¬λ¦¬ νμ
μ ν λΉνμ§ μμΌλ©΄ μλμ κ°μ μ€λ₯κ° λ°μνλ€.
raw value for enum case must be a literal
νμ§λ§ λλ μ΄μ°¨μ λ°°μ΄μ μμ
νκ³ μμ΄μ νκ³Ό μ΄μ μ΄κ±°νμ μμκ°μ ν λΉνκ³ μΆμλ€. ꡬκΈλ§μ ν΅ν΄μ λ³Έ ν΄κ²°λ²μ structμ ν΄λΉνλ νλ‘νΌν°λ₯Ό λλ κ²μ΄μλλ°, switchλ¬Έμ μ¬μ©ν΄ caseλ³ μμ
μ ν μμ μ΄λΌ μ΄κ±°νμ΄ νμνλ€. κ·Έλ¬λ μ€ μκ°λ λ°©λ²μ μμκ°μ λ°λ‘ νλ‘νΌν°λ‘ λμ΄ ν΄λΉ νλ‘νΌν°λ₯Ό λμ μ¬μ©νλ λ°©λ²μ΄μλ€.
μμκ°μ .rawValueλ‘ λ°λ‘ μ¬μ©μ΄ κ°λ₯νμ§λ§, νλ‘νΌν°λͺ
μμ κ°μ μλ―Έκ° μ λκ»΄μ§μ§ μκΈ° λλ¬Έμ λ°λ‘ νλ‘νΌν°λ₯Ό μμ±ν΄ μ¬μ©ν μ μ΄ μμλ€. μλμ κ°μ μ°μ°νλ‘νΌν° μμμ switchλ¬Έμ μ¬μ©ν΄ caseλ³ λ°νκ°μ λ€λ₯΄κ² νλ©΄ λμ§ μμκΉ?
enum Direction: String {
case up = "μ"
case down = "ν"
case left = "μ’"
case right = "μ°"
var current: String {
self.rawValue
}
}
switchλ¬Έμ μ¬μ©ν΄ μ 리νλ©΄ μλμ κ°μ΄ ꡬνν μ μλ€. λν΄ μ°μ°νλ‘νΌν°μ νμ
μ typealiasλ₯Ό μ¬μ©νλ©΄ λ κΉλν μ½λκ° λλ€.
typealias DirectionDetail = (row: Int, column: Int)
enum Direction {
case up
case right
case down
case left
var value: DirectionDetail {
switch self {
case .up:
return (-1, 0)
case .right:
return (0, 1)
case .down:
return (1, 0)
case .left:
return (0, -1)
}
}
}
'iOS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ iOS ] μλ μ°Έμ‘° μΉ΄μ΄ν , ARC (Automatic Reference Counting) (0) | 2024.03.27 |
---|---|
[ iOS ] νλ©΄ μΊ‘μ³νκΈ° - UIGraphicsRenderer (2) | 2023.12.22 |
[ iOS ] MVC - 3 ) Controller κ°μ²΄ (0) | 2023.11.18 |
[ iOS ] MVC - 2 ) Model κ°μ²΄ (0) | 2023.11.18 |
[ iOS ] MVC - 1) MVCλ? (1) | 2023.10.17 |