swift 类(class) 类型有方法deinit()
我们可以在其中定义该类的实例将从内存中删除。我们如何知道 结构 它将被从内存中删除?
例如,
struct Vehicle { ... }
var v: Vehicle? = Vehicle()
v = nil
最佳答案
结构超出范围时会被释放。您不能将 deinit 放入结构中,但这是一种解决方法。您可以创建一个结构,该结构具有对释放时打印某些内容的类的引用。
class DeallocPrinter {
deinit {
print("deallocated")
}
}
struct SomeStruct {
let printer = DeallocPrinter()
}
所以当结构被释放时——如果你没有复制结构,它会在释放时打印释放,因为 DeallocPrinter 将在结构被释放的同时被释放。
关于ios - 在 Swift 中如何知道该结构已从内存中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46842577/