-
[Swift] - DeinitializationiOS/π Swift 2021. 4. 20. 20:08
π€π’[μ°μ§±μ 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
'iOS > π Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] - defer λ¬Έμ΄λ? (0) 2021.04.29 [Swift] - μμ (Inheritance) (0) 2021.04.21 [Swift] CaseIterable μ΄λ? (0) 2021.03.29 [Swift] μ°μ°μ ꡬν (Implementing Operator Methods) (0) 2021.03.18 [Swift] Dictionary κ°λ¨ μ 리 (0) 2021.03.16