2023-10-12|閱讀時間 ‧ 約 2 分鐘

Swift - Deinitialization

swift讀書筆記

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/deinitialization/

 class instance deallocated前會call deinitializers。因為是deallocated前,所以裡面可以access任何property跟func。

deinit {    
// perform the deinitialization
}
為什麼struct沒有deinitializer?

https://stackoverflow.com/questions/50399028/why-dont-structs-have-deinitializers-in-swift-like-classes

因為reference type才有記憶體管理問題,它們的生命週期受限於包含該struct的變數的生命週期。當變數超出範圍時,struct的記憶體就會被釋放。

deinit會主動調用,沒辦法手動call。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.