[SWIFT] μμ±μ
1οΈβ£κ΅¬μ‘°μ²΄ μμ±μ
- μ¬λ¬κ°μ μ§μ μμ±μλ₯Ό ꡬν
- μ€λ²λ‘λ© μ§μ
2οΈβ£ν΄λμ€ μμ±μ
πμ§μ μμ±μ(designated) (class, struct, enum)
- init(..)νν
- λͺ¨λ μ μ₯ μμ±μ μ΄κΈ°ν ν΄μΌν¨ (μ΅μ λ κ°λ₯)
- λ°λμ μ¬μ μν΄μΌν¨
πνΈμμμ±μ(convenience) (only class)
- λͺ¨λ μ μ₯ μμ±μ μ΄κΈ°ν ν νμκ° μμ
- κ°λ°μκ° νΈλ¦¬νκ² κ°μ²΄λ₯Ό λ§λ€μ΄ λΌ μ μλλ‘ ν΄μ£Όλ μ₯μΉ
- μ μ₯μμ±μ κΈ°λ³Έκ°μ μ€μ ν μ μλ€ (λͺ¨λ μ μ₯ μμ±μ μ€μ νμ§ μμλ λλ€)
- μμμ΄ λμ§ μλλ€
νΈμ μμ±μλ‘ λ§λλ κ²μ΄ 볡μ‘λλ μ€μλ₯Ό μ€μΌ μ μλ€
κ°λ₯ν μ§μ μμ±μμ κ°―μλ₯Ό μ€μ΄κ³ , νΈμμμ±μμμ μ§μ μμ±μλ₯Ό νΈμΆνλλ‘ νλ κ²μ΄ μ’λ€
μμ±μμ μμ
- μμ±μλ λͺ¨λ μ μ₯μμ±μ μ΄κΈ°ννλ λꡬ기 λλ¬Έμ , μλΈν΄λμ€μ μ΅μ ν βοΈ
- μμλμ§ μκ³ μ¬μ μνλ κ²μ΄ μμΉ
β³οΈ μμ κ·μΉ
π‘ 1λ¨κ³ ) μμμ μ§μ μμ±μμ λν κ³ λ €
(μμ) μ§μ μμ±μλΌλ©΄?
βοΈνμν΄λμ€μμ μ§μ μμ±μλ‘ κ΅¬ν (μ¬μ μ)
βοΈνμν΄λμ€μμ νΈμμμ±μλ‘ κ΅¬ν (μ¬μ μ)
βοΈκ΅¬ν μν΄λ λ¨
(μμ) νΈμμμ±μλΌλ©΄?
βοΈμ¬μ μ νμ§ μμλ λ¨
π‘ 2λ¨κ³) νμ¬λ¨κ³μ μμ±μ ꡬν
μ§μ μμ±μ?
βοΈλͺ¨λ μ μ₯ μμ±μ μ΄κΈ°ν ν΄μΌν¨
βοΈμνΌν΄λμ€μ μ§μ μμ±μ νΈμΆ
νΈμμμ±μ?
βοΈμ§μ μμ±μ νΈμΆ ν΄μΌν¨
μ§μ μμ±μλ μ¬μ μ κ³ λ €κ° κ°λ₯ν¨
βοΈμλμμ 쑰건
- μ μ μ₯ μμ±μ΄ μμ μμ λ
- κΈ°λ³Έκ°μ΄ μ€μ λμ΄ μμ λ ( μλ¬ κ°λ₯μ±μ΄ μ¬λΌμ§ )
νΈμμμ±μλ μ¬μ μκ° μμΉμ μΌλ‘ λΆκ°λ₯
βοΈμλμμ 쑰건
- μμ μ§μ μμ±μλ₯Ό λͺ¨λ μμνλ κ²½μ°
1) μ§μ μμ±μ λͺ¨λ μλμμμ κ²½μ°
2) μμμ μ§μ μμ±μ λͺ¨λ μ¬μ μνλ κ²½μ°
-------------------------------------------------
πνμμμ±μ (required)
πνμμμ±μλ λ°λμ ν΄λΉ νμ μμ±μλ₯Ό ꡬνν΄μΌν¨
βοΈ μλμμ 쑰건
- λ€λ₯Έ μ§μ μμ±μλ₯Ό ꡬν νμ§ μμ λ
-------------------------------------------------
πμ€ν¨κ°λ₯μμ±μ (init?)
? μΈμ€ν΄μ€ μμ±μ μ€ν¨ν μλ μλ κ°λ₯μ±μ κ°μ§ μμ±μ (class, struct, enum κ°λ₯)
(λμΌλ¨κ³ - λΈλ¦¬κ²μ΄νΈ μ΄ν¬λ‘μ€)
- init? (μ€ν¨κ°λ₯) ===> init (μ€ν¨λΆκ°λ₯) (νΈμΆ/μμ) (OK)
- init ===> - init? (νΈμΆ/μμ) (X)
(μμκ΄κ³ - λΈλ¦¬κ²μ΄νΈ μ )
- (μμ) init? <=== (νμ) init (νΈμΆ/μμ) (X)
- (μμ) init <=== (νμ) init? (νΈμΆ/μμ) (OK)
-------------------------------------------------
πμλ©Έμ(deinit) ---------------- classμμλ§ μ‘΄μ¬
? μμ±μμ λ°λμ κ°λ
? μΈμ€ν΄μ€κ° μ¬λΌμ§ λ νΈμΆ λλ λ©μλ
? νλΌλ―Έν° μμ
? νλμ μλ©Έμλ§ κ΅¬ν κ°λ₯
ν΄λμ€ | ꡬ쑰체 | |
μ§μ μμ±μ | init() | |
νΈμμμ±μ | convenience init() | x |
νμμμ±μ | required init() | x |
μ€ν¨κ°λ₯μμ±μ | init?() init!() |
|
μλ©Έμ | deinit{} | x |