ios - 在 Swift 中如何知道该结构已从内存中删除?

标签 ios swift struct memory-leaks automatic-ref-counting

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/

相关文章:

ios - 从 Core Data Managed Object Context 中删除插入但未保存的对象

html - iOS中如何在UITextview中显示HTML内容?

ios - 我想在导航栏上设置后退按钮文本,但我不能。此代码不起作用

ios - UITableViewCell 问题的尾随空格

c - 如何在 C 中使用指向结构的指针从结构中打印成员数据

struct - Rust 支持嵌套结构吗?

ios - 以编程方式调整约束是否需要先删除然后重新添加?

ios - 将数据发布到数据库字段,但字段仍为空白?

ios - 我不能 gem 安装 cocoapods,它崩溃了

c++ - 改变存储在 QVector 中的结构的状态