[Swift] - Deinitialization
π€π’[μ°μ§±μ iOS λΈλ‘κ·Έ]π΅π»
iOSλ₯Ό 곡λΆνλ©΄μ λ°°μ΄ λ΄μ©μ κΈ°λ‘νκ³ μμ΅λλ€.
deinitializer
λ ν΄λμ€ μΈμ€ν΄μ€κ° λ©λͺ¨λ¦¬μμ ν΄μ λκΈ° μ§μ μ νΈμΆλ©λλ€.
deinitializer
λ ν΄λμ€ νμ
μμλ§ μ‘΄μ¬ν©λλ€.
How Deinitialization Works
μμμ ν보νκΈ° μν΄μ μ°λ¦¬λ μ§μ μΈμ€ν΄μ€λ₯Ό λ©λͺ¨λ¦¬μμ ν λΉν΄μ νμ§ μμ΅λλ€.
Swift κ° νλ¨νμ¬ μλμΌλ‘ ν λΉν΄μ ν©λλ€. ARC
λ₯Ό ν΅ν΄ μΈμ€ν΄μ€μ λ©λͺ¨λ¦¬ κ΄λ¦¬λ₯Ό ν©λλ€.
νμ§λ§ ν λΉ ν΄μ μ ν΄λΉ μμμ μΆκ°μ μΈ μμ μ΄ νμν μ μμ΅λλ€.
μΆκ°μ μΈ μμ μ λν μλ₯Ό λ€λ©΄, μ΄λ€ ν΄λμ€κ° νμΌμ μ΄κ³ μ°κΈ° μμ μ νλ€λ©΄, ν λΉ ν΄μ νκΈ° μ§μ μ νμΌμ λ«λ μμ μ΄ νμν κ²μ λλ€.
μμ κ°μ μμ
μ deinit
λ©μλ λ°λμ μΆκ°ν΄μ ꡬννλ©΄ λ©λλ€.
deinit
μ ν΄λμ€λΉ μ΅λ νλλ§ κ΅¬νμ΄ κ°λ₯ν©λλ€. (ꡬνμ΄ νμλ μλκΈ° λλ¬Έμ
λλ€)
deinitμ νλΌλ―Έν°λ₯Ό λ°μ§ μκ³ , λ³΄ν΅ λ©μλμ λΆμ΄λ ()
(parenthesis) λ λΆμ΄μ§ μμ΅λλ€.
class SomeClass {
...
deinit {
// perform the deinitialization
}
}
λν deinit
μ μ§μ νΈμΆν μ μμ΅λλ€. ꡬνλ§ ν΄λμΌλ©΄ Swift κ° μμμ λ©λͺ¨λ¦¬ ν λΉν΄μ μ§μ μ νΈμΆν©λλ€.
μμ κ΄κ³μμ deinit μ νΈμΆ μμλ subclass μ deinitμ΄ λ¨Όμ νΈμΆλ©λλ€. (initκ³Ό κ°μ μμ)
κ·Έλ¦¬κ³ κ΅¬νλ subclassμ deinit
μ΄ μμ΄λ superclass μ deinit
μ νΈμΆλ©λλ€.
λ!
κ΄λ ¨ μλ£: docs.swift.org/swift-book/LanguageGuide/Deinitialization.html