μΈμ€ν΄μ€λ₯Ό μμ±νλ μ΄λμ λΌμ΄μ μ ν΄λμ€μ μΈμ€ν΄μ€κ° μλ©Έλ λ νΈμΆλλ λμ΄λμ λΌμ΄μ , κ·Έλ¦¬κ³ μ΄μ κ΄λ ¨λ κ²λ€μ λν΄ μμλ³΄κ² λ€.
- νλ‘νΌν° μ΄κΈ°κ°
- μ΄λμ λΌμ΄μ init
- λμ΄λμ λΌμ΄μ deinit
- νλ‘νΌν° μ΄κΈ°κ°
- μ€μννΈμ λͺ¨λ μΈμ€ν΄μ€λ μ΄κΈ°νμ λμμ λͺ¨λ νλ‘νΌν°μ μ ν¨ν κ°μ΄ ν λΉλμ΄ μμ΄μΌ νλ€.
- νλ‘νΌν°μ 미리 κΈ°λ³Έκ°μ ν λΉν΄λλ©΄ μΈμ€ν΄μ€κ° μμ±λ¨κ³Ό λμμ μ΄κΈ°κ°μ μ§λκ² λλ€.
1. μ΄λμ λΌμ΄μ (initializer)
- νλ‘νΌν° μ΄κΈ°κ°μ μ§μ νκΈ° μ΄λ €μ΄ κ²½μ°μλ μ΄λμ λΌμ΄μ initμ ν΅ν΄ μΈμ€ν΄μ€κ° κ°μ ΈμΌ ν μ΄κΈ°κ°μ μ λ¬ν μ μλ€.
νλ‘νΌν°μ μ΄κΈ°κ°μ΄ κΌ νμ μμ λ
- μ΅μ λμ μ¬μ©!
- class λ΄λΆμ initμ μ¬μ©ν λλ convenience ν€μλ μ¬μ©
- μμμ μΆμΆ μ΅μ λμ μΈμ€ν΄μ€ μ¬μ©μ κΌ νμνμ§λ§ μ΄κΈ°κ°μ ν λΉνμ§ μκ³ μ ν λ μ¬μ©
2. μ€ν¨κ°λ₯ν μ΄λμ λΌμ΄μ
- μ΄λμ λΌμ΄μ 맀κ°λ³μλ‘ μ λ¬λλ μ΄κΈ°κ°μ΄ μλͺ»λ κ²½μ° μΈμ€ν΄μ€ μμ±μ μ€ν¨ν μ μλ€.
- μΈμ€ν΄μ€ μμ±μ μ€ν¨νλ©΄ nilμ λ°ννλ€.
- μ€ν¨κ°λ₯ν μ΄λμ λΌμ΄μ μ λ°ννμ μ μ΅μ λ νμ μ΄λ€.
- init?μ μ¬μ©νλ€.
- λμ΄λμ λΌμ΄μ (deinitializer)
- deinitμ ν΄λμ€μ μΈμ€ν΄μ€κ° λ©λͺ¨λ¦¬μμ ν΄μ λλ μμ μ νΈμΆλλ€.
- μΈμ€ν΄μ€κ° ν΄μ λλ μμ μ ν΄μΌν μΌμ ꡬνν μ μλ€.
- deinitμ 맀κ°λ³μλ₯Ό μ§λ μ μλ€.
- μλμΌλ‘ νΈμΆλλ―λ‘ μ§μ νΈμΆν μ μλ€.
- λμ΄λμ λΌμ΄μ λ ν΄λμ€ νμ μλ§ κ΅¬νν μ μλ€.
- μΈμ€ν΄μ€κ° λ©λͺ¨λ¦¬μμ ν΄μ λλ μμ μ ARC(Automatic Reference Counting) μ κ·μΉμ λ°λΌ κ²°μ λλ€.