μ΄μ νλ‘νΌν° λ§μ§λ§ μ’ λ₯μΈ νμ νλ‘νΌν°μ λν΄ μ 리ν΄λ³΄λ €κ³ νλ€.
μ΄λ»κ² 보면 μ μ₯ νλ‘νΌν°, μ°μ° νλ‘νΌν°μ ν¬ν¨λλ λ΄μ©μΌλ‘ λ³Ό μλ μκ² λ€.
π νμ νλ‘νΌν° (Type Properties)
νμ νλ‘νΌν°λ μμ 곡λΆνλ μ μ₯ νλ‘νΌν°, μ°μ° νλ‘νΌν°μ staticλ§ λΆμ΄λ©΄ λ!
μ§κΈκΉμ§ 곡λΆν νλ‘νΌν°λ€μ νμ μ μ μνκ³ , ν΄λΉ μΈμ€ν΄μ€κ° μμ±λμμ λ μ¬μ©μ΄ κ°λ₯νλ€.
κ·Έλ¦¬κ³ μΈμ€ν΄μ€λ§λ€ λ€λ₯Έ κ°μ κ°μ§ μ μμλ€. μΌμ’ μ μ§μλ³μκ°μ κ°λ .π₯
νμ§λ§ μ΄ νμ νλ‘νΌν°λ κ°κ°μ μΈμ€ν΄μ€κ° μλ νμ μ체μ! μνλ νλ‘νΌν°μ΄λ€.
μΈμ€ν΄μ€μ μμ± μ¬λΆμ κ΄κ³ μμ΄ νμ νλ‘νΌν°μ κ°μ λ± νλλΏμ΄λ€.
κ·Έλ¦¬κ³ κ·Έ νλλΏμΈ κ°μ κ·Έ νμ μ λͺ¨λ μΈμ€ν΄μ€κ° 곡ν΅μΌλ‘ μ¬μ©νλ κ°μ΄λ
λͺ¨λ μΈμ€ν΄μ€μμ 곡μ©μΌλ‘ μ¬μ©ν μ μλ λ³μλ₯Ό μ μν λ μ μ©νλ€. μΌμ’ μ μ μλ³μκ°μ κ°λ !!π₯
μ΄μ μ μ₯, μ°μ° νμ νλ‘νΌν° κ°κ°μ λνμ¬ μμΈν μμ보μ.
π μ μ₯ νμ νλ‘νΌν°
μ μ₯ νμ νλ‘νΌν°μ κ²½μ°, μ€μν νΉμ§μ΄ νλ μλ€.
무쑰건 μ§μ° μ°μ° λλ€λ κ²,,!!
lazy ν€μλλ₯Ό μ¬μ©νμ§ μμμλ λΆκ΅¬νκ³ μλμΌλ‘ μ§μ° μ°μ° μ²λ¦¬λλ€.
π νμ§λ§ μ§μ° μ μ₯ νλ‘νΌν°μλ λ€λ¦!
[#1] μ΄κΉκ°μ μ€μ ν΄μΌνλ©°,
[#2] λ³μμ μμ λͺ¨λ μ¬μ©μ΄ κ°λ₯νκ³ ,
[#3] λ€μ€μ€λ λ νκ²½μμλ 무쑰건 ν λ²λ§ μ΄κΈ°νλλ€λ 보μ₯μ λ°κΈ° λλ¬Έμ΄λ€.
κ·Έ μ΄μ λ₯Ό νλμ© μ΄ν΄λ³΄μ,,!!
[#1] μ΄κΉκ°μ μ€μ ν΄μΌ νλ μ΄μ
Example ν΄λμ€ μμ name μ΄λΌλ μ μ₯ νμ νλ‘νΌν°λ₯Ό μ μΈνλ€.
μμ μ€λ₯κ° λ¨λλ°, κ·Έ λ΄μ©μ΄ μ΄λμ λΌμ΄μ λ₯Ό μ¬μ©νκ±°λ getterλ₯Ό μ¬μ©νλΌκ³ νλ€.
κ·Έ μλ―Έλ₯Ό ν΄μν΄λ³΄λ©΄, staticμΌλ‘ μ μΈν κ±°λΌλ©΄ μ΄κΉκ°μ μ€μ νκ±°λ μ°μ° νμ νλ‘νΌν°λ‘ λ§λ€λΌλ κ²,,!!
μμμ λ§νλ― μ μ₯ νμ νλ‘νΌν°λ μ μ λ³μμ²λΌ μ¬μ©λλ―λ‘
μΈμ€ν΄μ€λ₯Ό μμ±ν λλ§λ€ μ΄κΈ°νλλ λ€λ₯Έ νλ‘νΌν°λ€κ³Όλ λ€λ¦!
ν λ² νΈμΆλμ΄ λ©λͺ¨λ¦¬μ κ°λ©΄ κ·Έ μ΄νλ‘λ μΈμ€ν΄μ€κ° μλ‘ μ΄κΈ°νλλ λ§λ , μκ΄μλ€.
νλ‘νΌν°κ° μλ‘ μμ±λμ§ μκ³ κ³΅μ λμ΄ μ¬μ©λλ κ²μ΄λ€.
λ°λΌμ μ΄ μ μ₯ νμ νλ‘νΌν°λ μΈμ€ν΄μ€μ μ΄κΈ°νμ κ΄λ ¨μ΄ μκ³ ,
λΉμ°νκ²λ μΈμ€ν΄μ€ μμ±μ νΈμΆλλ μ΄λμ λΌμ΄μ λν κ΄λ ¨μ΄ μλ€.βοΈ
π λλ¬Έμ μ²μ μ μΈ μ μ΄κΉκ°μ μ§μ ν΄λμ§ μμΌλ©΄
νμ μ΄κΉκ°μ λ£μ΄ μ€ λ°©λ²μ΄ μλ€. λ°λΌμ μ΄κΉκ°μ΄ νμ!
[#2] λ³μμ μμ λͺ¨λλ‘ μ μ κ°λ₯ν μ΄μ
μ§μ° μ μ₯ νλ‘νΌν°μμλ 무쑰건 λ³μλ§ μ¬μ© κ°λ₯νλ€κ³ 곡λΆνλλ°,
μ¬κΈ°μλ μ§μ° μ μ₯μμλ λΆκ΅¬νκ³ μμλ μ¬μ©μ΄ κ°λ₯νλ€.
νμ νλ‘νΌν°κ° μλ λͺ¨λ νλ‘νΌν°λ€μ κ²½μ°!
μΈμ€ν΄μ€κ° μμ±λ λ μ΄λμ λΌμ΄μ μ μν΄ λͺ¨λ νλ‘νΌν°κ° μ΄κΈ°νλλλ°,
μ΄ λ μ§μ° μ μ₯ νλ‘νΌν°λ μμ§ νΈμΆλμ§ μμμΌλ―λ‘ 'κ°μ΄ μμ'μΌλ‘ μ΄κΈ°νλλ€.
κ·Έλ κ² λμμ λ μ΄ μ§μ° μ μ₯ νλ‘νΌν°κ° μμλΌλ©΄ μΆνμ νΈμΆνμ¬ μνλ κ°μ ν λΉν μ μκ² λλ€.π₯
μμ μ΄μ λ‘ μ§μ° μ μ₯ νλ‘νΌν°λ μμλ₯Ό μ¬μ©νμ§ λͺ»νλ€.
νμ§λ§ μ μ₯ νμ νλ‘νΌν°λ μμμ λ§νλ― μΈμ€ν΄μ€μ μμ±, μ΄λμ λΌμ΄μ μ μ무 κ΄κ³κ° μλ€.
λ°λΌμ μμλ‘ μ μν μ§λΌλ ν΄λΉ νλ‘νΌν°μ νΈμΆμ΄ μκΈ° μ κΉμ§λ
νλ‘νΌν°κ° ν¬ν¨λ μΈμ€ν΄μ€κ° μ΄κΈ°νλλ λ§λ ,,! μ ν μκ΄ μμ΄ μ΄κΈ°νλμ§ μλλ€.
π λλ¬Έμ μ μ₯ νμ νλ‘νΌν°λ μμλ‘ μ μν΄λ λ΄κ° μν λ νΈμΆνκ³ μνλ κ°μ ν λΉν μ μλ κ²βοΈ
[#3] λ€μ€ μ€λ λ νκ²½μμλ ν λ²λ§ μ΄κΈ°νλλ€λ 보μ₯μ λ°μ μ μλ μ΄μ
μμ λ κ°μ§λ₯Ό λͺ¨λ μ΄ν΄νλ€λ©΄, μ΄ κ°λ λν μ½κ² μ μ μμ κ²μ΄λ€.
μ§μ° μ μ₯ νλ‘νΌν°λ κ·Έλ₯ μ§μ°λ§ λ λΏ, μ§μ λ³μμ κ°μ μν μ νλ€λ μ μ λ€λ₯΄μ§ μλ€.
νμ§λ§ μ μ₯ νμ νλ‘νΌν°λ μ μ λ³μμ κ°μ μν μ νλ―λ‘
λ± ν λ² μ΄κΈ°νλκ³ λ©λͺ¨λ¦¬μ μ¬λΌκ°λ©΄ λ μ΄μ μλ‘μ΄ νΈμΆμ΄ μμ μ μλ€.
π λ°λΌμ λ€μ€ μ€λ λ νκ²½μΌμ§λΌλ λ λ² μ΄μ μ΄κΈ°νλ μ μλ€.βοΈ
μ΄λ κ² μ μ₯ νμ νλ‘νΌν°μ μ§μ° μ μ₯ νλ‘νΌν°μμ μ°¨μ΄μ μ μμλ΄€λ€.
μ΄μ μ μ₯ νμ νλ‘νΌν°μ κΈ°λ³Έμ μΈ μ¬μ© ννλ₯Ό μ½λλ‘ νμΈν΄λ³΄μ.!
class seolhee_Info {
static let name: String = "μ€ν¬"
static var age: Int = 1
}
// μΈμ€ν΄μ€μ μ κ·Όν νμ μμ΄ νμ
μ΄λ¦λ§μΌλ‘ νλ‘νΌν° μ¬μ© κ°λ₯
seolhee_Info.age = 2 // varλ‘ μ μΈλ κ²½μ° κ° λ³κ²½λ κ°λ₯
print(seolhee_Info.name) // μ€ν¬
print(seolhee_Info.age) // 2
μμμ μ€λͺ νλ― μ μ₯ νμ νλ‘νΌν°λ μΈμ€ν΄μ€μ μ΄κΈ°νμλ κ΄λ ¨μ΄ μμΌλ―λ‘
μΈμ€ν΄μ€μ μ κ·Όνμ§ μκ³ μλ λ°λ‘ νμ μ΄λ¦μΌλ‘ νλ‘νΌν°μ νΈμΆμ΄ κ°λ₯νλ€.
π μ°μ° νμ νλ‘νΌν°
μ°μ° νμ νλ‘νΌν°λ μ μ λ³μμ κ°μ μν μ ν λ€λ κ²λ§ μ μΈνλ©΄
μ°μ° νλ‘νΌν°μ ν° μ°¨μ΄μ μ΄ μλ€.
μ μ₯ νμ νλ‘νΌν°μ²λΌ μΈμ€ν΄μ€μ μ κ·Όνμ§ μκ³ νμ μ΄λ¦λ§μΌλ‘ μ¬μ©μ΄ κ°λ₯νλ€λ μ ,
κ·Έλ¦¬κ³ μ°μ° νμ νλ‘νΌν°μ λ§μ°¬κ°μ§λ‘ κ°μ μ μ₯νλκ² μλλ―λ‘
varλ‘λ§ μ μκ° κ°λ₯νλ€λ μ λ§ μΈμ§νκ³ μμΌλ©΄ μΆ©λΆνλ€.
μ½λλ‘ μ°μ° νμ νλ‘νΌν°μ κΈ°λ³Έ ννλ₯Ό μμ±νλ€.
class seolhee_Info2 {
static var introduce: String {
return "μ€ν¬"
}
}
print(seolhee_Info2.introduce) // μ€ν¬
κΈ°λ³Έ μ°μ° νμ νλ‘νΌν°μ λμΌν ννμ, staticλ§ μΆκ°ν λͺ¨μ΅μ΄λ€.
π μ 리
νμ νλ‘νΌν°λ μΌλ°μ μΈ νλ‘νΌν°μ staticμ λΆμΈ ννλ‘
μΈμ€ν΄μ€μ μμ±κ³Ό κ΄κ³ μμ΄ νμ μ체μ μνλ©°, μ μ λ³μμ λΉμ·νλ€.
νΈμΆμ μΈμ€ν΄μ€μ μ κ·Ό μμ΄ νμ μ체 μ΄λ¦λ§μΌλ‘λ κ°λ₯νλ€.
μ μ₯ νμ νλ‘νΌν°λ μλμΌλ‘ μ§μ° μ°μ°λκ³ , λ³μ μμ λͺ¨λλ‘ μ μ κ°λ₯, μ΄κΉκ°μ΄ νμμ΄λ©°
λ€μ€ μ€λ λ νκ²½μμλ ν λ²λ§ μ΄κΈ°νλλ€λ κ²μ΄ 보μ₯λλ€.
μ°μ° νμ νλ‘νΌν°λ λ³μλ‘λ§ μ μκ° κ°λ₯νλ€.
κΈμ΄ κΈΈμ΄μ§ κ² κ°μμ μ μ₯ νλ‘νΌν°, μ°μ° νλ‘νΌν°, νμ νλ‘νΌν° μΈ κ°λ‘ λλ μμ±νλλ°
μ΄λ κ² μ 리νκ³ λλ λ΄ λ¨Έλ¦Ώμμλ κΉλν μμ½λ λλμ΄λΌ μ’λ€,,
νμ§λ§ λ΄μ©μ΄ μκ°λ³΄λ€ λ°©λν΄μ νλ‘νΌν° κ°μμ, self νλ‘νΌν°,,, κ·Έλ¦¬κ³ κ·Έμ κ΄λ ¨λ
λ©μλ, μΈμ€ν΄μ€ λ±λ±μ λν΄μλ λͺ¨λ 곡λΆνμ§ λͺ»νλ€γ γ μ‘°λ§κ° 곡λΆν΄μ λ κΈμ μμ±ν΄μΌκ² λ€,,
νμ΄ν ,!!ππΌβοΈ
μ°Έκ³
- π μ€μννΈ νλ‘κ·Έλλ°
'3οΈβ£ Swift > Swift μ 리' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] ARC (2); λ©λͺ¨λ¦¬ λμ, Retain Cycle (0) | 2021.10.04 |
---|---|
[Swift] ARC (1); ARCμ κ°λ , Retain Count (3) | 2021.09.23 |
[Swift] νλ‘νΌν° κ°λ μ 리 (2); μ°μ° νλ‘νΌν° (0) | 2021.09.22 |
[Swift] νλ‘νΌν° κ°λ μ 리 (1); μ μ₯ νλ‘νΌν° (0) | 2021.09.22 |
[Swift] ν΄λ‘μ λ₯Ό μ¬μ©νλ μ΄μ , κ° μΊ‘μ³(Capturing Value) (0) | 2021.09.11 |
λκΈ