Swift 内存管理

2019/07/28 swift

Swift 使用自动引用计数来管理内存。这意味着我们不需要关注swift 是如何来管理内存的,因为ARC 机制会保证一个实例在不再需要的时候会被系统释放掉。然而,并不是所有时候都不需要关注。

然而,有一种情况,当两个类实例互相持有对方,以至于互相保活,这就是循环引用。如下面的例子:

class Person {
    let name: String
    init(name: String) { self.name = name }
    var apartment: Apartment?
    deinit { print("\(name) is being deinitialized") }
}

class Apartment {
    let unit: String
    init(unit: String) { self.unit = unit }
    var tenant: Person?
    deinit { print("Apartment \(unit) is being deinitialized") }
}
var john: Person?
var unit4A: Apartment?
john = Person(name: "John Appleseed")
unit4A = Apartment(unit: "4A")

当我们初始化 的时候,他们的关系图如下:

[1] : Swift 内存管理

Search

    Post Directory