【发布时间】:2022-01-02 04:36:13
【问题描述】:
我正在尝试使用 ARC 以及它处理内存释放的方式。如果我有一些课:
class Person {
var name: String = ""
var age: Int = 0
init(name: String, age: Int) {
self.name = name
self.age = age
}
deinit {
print("Person \(name) has been deallocated")
}
}
class MyViewController: UIViewController {
var person = Person(name: "Steve", age: 85)
}
我是否需要担心为该人腾出空间,还是由 ARC 处理?我需要在MyViewController 中声明deinit 吗?
【问题讨论】:
-
就像 init 一样,deinit 对对象的生命周期没有影响:“在类实例被释放之前立即调用 deinitializer。” — 请参阅docs.swift.org/swift-book/LanguageGuide/Deinitialization.html,它还链接到一般 ARC 文档..
标签: swift memory-management automatic-ref-counting