在Swift中,也支持ARC機(jī)制,也就是內(nèi)存自動(dòng)回收機(jī)制。
在上一篇博文我們講了《[Swift初始化(Initialization)](http://blog.csdn.net/y550918116j/article/details/49535219)》,既然有了初始化的方法,Swift也提供了銷毀的通知方法。
deinit只能在引用類型中使用,也就是只能在類中使用。
~~~
deinit {
// perform the deinitialization
}
~~~
下面就用一個(gè)例子給大家介紹銷毀是怎么工作的。
~~~
class SomeClass {
// MARK: 類銷毀時(shí),通知此方法
deinit {
print("銷毀")
}
}
var sClass:SomeClass? = SomeClass()
sClass = nil // print "銷毀"
~~~
我們?cè)O(shè)置變量sClass為可選的SomeClass類,當(dāng)我們將sClass設(shè)為nil時(shí),當(dāng)然你也可以不執(zhí)行這行代碼,swift會(huì)自動(dòng)回收sClass分配的內(nèi)存空間。
這里我們?nèi)藶榈恼{(diào)用`sClass = nil`后,Swift開(kāi)始銷毀sClass,銷毀完畢通知SomeClass類中的deinit方法體,最后完成內(nèi)存回收。
## 其他
### 參考資料
[The Swift Programming Language (Swift 2.1)](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html)
### 文檔修改記錄
| 時(shí)間 | 描述 |
|-----|-----|
| 2015-10-31 | 根據(jù) [The Swift Programming Language (Swift 2.1)](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html)中的Deinitialization總結(jié) |
版權(quán)所有:[http://blog.csdn.net/y550918116j](http://blog.csdn.net/y550918116j)
- 前言
- Swift函數(shù)
- Swift閉包(Closures)
- Swift枚舉(Enumerations)
- Swift類和結(jié)構(gòu)體(Classes and Structures)
- Swift屬性(Properties)
- Swift方法(Methods)
- Swift下標(biāo)(Subscripts)
- Swift繼承(Inheritance)
- Swift初始化(Initialization)
- Swift銷毀(Deinitialization)
- Swift可選鏈(Optional Chaining)
- Swift錯(cuò)誤處理(Error Handling)
- Swift類型選擇(Type Casting)
- Swift協(xié)議(Protocols)
- Swift訪問(wèn)控制(Access Control)
- Swift高級(jí)運(yùn)算符(Advanced Operators)
