-
[Swift] νλ‘νΌν°(property)iOS/Swift 2022. 8. 2. 21:53
π‘ νλ‘νΌν°: ν΄λμ€, ꡬ쑰체, μ΄κ±°ν λ±μ κ΄λ ¨λ κ°
νλ‘νΌν°μ μ’ λ₯
μ μ₯ νλ‘νΌν° μ°μ° νλ‘νΌν° νμ νλ‘νΌν° μΈμ€ν΄μ€μ λ³μ λλ μμ νΉμ μ°μ°μ μ€νν κ²°κ³Όκ° νΉμ νμ μ μ¬μ©λλ νλ‘νΌν° + νλ‘νΌν° κ°μμ
μ μ₯ νλ‘νΌν°
- ν΄λμ€ λλ ꡬ쑰체μ μΈμ€ν΄μ€μ μ°κ΄λ κ°μ μ μ₯νλ€
- κΈ°λ³Έκ°κ³Ό μ΄κΈ°κ° μ§μ O
π‘ ν΄λμ€μ κ²½μ° μ΄κΈ°κ°μ μ§μ ν΄μ£Όμ§ μμΌλ©΄ λ°λ‘ μ μν΄μ€μΌ νλ€
π‘ μ΅μ λ μ μ₯ νλ‘νΌν°λ₯Ό ν΅ν΄ κ°μ μ΄κΈ°κ°μ λ£μ΄μ£Όμ§ μκ³ λμ€μ κ°μ΄ μμ κ²½μ° ν λΉν μλ μλ€// ============ < μ μ₯ νλ‘νΌν° > ============ // ꡬ쑰체 struct CoordinatePoint { // μ μ₯ νλ‘νΌν° var x: Int var y: Int } // μΈμ€ν΄μ€ μμ± let yeonsuPoint: CoordinatePoint = CoordinatePoint(x: 10, y: 5) // ν΄λμ€ class Position { var point: CoordinatePoint let name: String // ν΄λμ€μ κ²½μ° μ΄κΈ°κ°μ μ§μ ν΄μ£Όμ§ μμΌλ©΄ λ°λ‘ μ μν΄μ€μΌ ν¨ init(name: String, CurrentPoint: CoordinatePoint){ self.name = name self.point = CurrentPoint } } print("yeonsu's position is \(yeonsuPoint.x), \(yeonsuPoint.y)") // μ΅μ λ μ μ₯ νλ‘νΌν° class Yeonsu { var name: String var point: CoordinatePoint? //μ΅μ λλ‘ μ§μ init(name: String) { self.name = name } } let introduceYs: Yeonsu = Yeonsu(name: "Bonny") introduceYs.point = CoordinatePoint(x:10, y:2) //κ°μ λμ€μ ν λΉ print(introduceYs.name)
μ§μ° μ μ₯ νλ‘νΌν°
- μ²μ μ¬μ©ν λκΉμ§ μ΄κΈ°κ°μ΄ κ³μ°λμ§ μμ νλ‘νΌν°
- νΈμΆμ΄ μμ΄μΌ κ°μ μ΄κΈ°ννλ€
1. var ν€μλ μ¬μ©
2. lazy ν€μλ μ¬μ©
struct Coordinate { var x: Int = 0 var y: Int = 0 } class Position_p { lazy var point: CoordinatePoint = CoordinatePoint(x: 1, y: 2) } let ysPosition: Position_p = Position_p() print(ysPosition.point) //μ²μ CoordinatePoint μμ±
μ°μ° νλ‘νΌν°
- νΉμ μνμ λ°λ₯Έ κ°μ μ°μ°νλ€
- μ κ·Όμ(getter)μ μ€μ μ(setter)μ μν μν
struct Coordinate2 { // μ μ₯ νλ‘νΌν° var x: Int var y: Int // μ°μ° νλ‘νΌν° var oppositePoint: Coordinate2 { //μ κ·Όμ get { return Coordinate2(x: -x, y: -y) } //μ€μ μ set(opposite) { x = -opposite.x y = -opposite.y } } } var yeonsuPosition: Coordinate2 = Coordinate2(x: 10, y: 30) print(yeonsuPosition) print(yeonsuPosition.oppositePoint)
νλ‘νΌν° κ°μμ
- νλ‘νΌν° κ°μ΄ λ³κ²½λ¨μ λ°λΌ νΈμΆν΄μ ννκ³ μΆμ μμ μ΄ μμ λ μ¬μ©νλ€
willSet λ©μλ didSet λ©μλ νλ‘νΌν° κ°μ΄ λ³κ²½λκΈ° μ§μ μ νΈμΆ νλ‘νΌν° κ°μ΄ λ³κ²½λ μ§νμ νΈμΆ μΈμ: νλ‘νΌν°κ° λ³κ²½λ κ° μΈμ: νλ‘νΌν°κ° λ³κ²½λκΈ° μ μ κ° λ§€κ°λ³μ λν΄νΈ μ΄λ¦: newValue 맀κ°λ³μ λν΄νΈ μ΄λ¦: OldValue class Account { var credit: Int = 0 { willSet { print("μμ‘μ΄ \(credit)μμμ \(newValue)μμΌλ‘ λ³κ²½λ μμ μ λλ€") } didSet { print("μμ‘μ΄ \(oldValue)μμμ \(credit)μμΌλ‘ λ³κ²½λμμ΅λλ€") } } } let myAccount: Account = Account() //μΈμ€ν΄μ€ μμ± //print("μμ‘μ΄ \(credit)μμμ \(newValue)μμΌλ‘ λ³κ²½λ μμ μ λλ€ myAccount.credit = 1000 //μΈμ€ν΄μ€ μ¬μ© //print("μμ‘μ΄ \(oldValue)μμμ \(credit)μμΌλ‘ λ³κ²½λμμ΅λλ€
'iOS > Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] λλ€ μ«μ λ§λλ λ°©λ²(Randomisation) (0) 2022.08.04 [Swift] μΈμ€ν΄μ€(instance) (0) 2022.08.03 [Swift] ꡬ쑰체(struct)μ ν΄λμ€(class) (0) 2022.08.02 [Swift] μ΅μ λ(Optional) (0) 2022.07.26 [Swift] 쑰건문(Conditional), λ°λ³΅λ¬Έ(Loop) (0) 2022.07.26