我来自C#背景;据我所知,Swift有像C#那样的自动内存管理。
C#中需要使用“编程模式”的问题是及时释放资源,因为垃圾收集器在未定义的时间运行,因此不能用于关闭文件,释放网络连接等。(因此IDisposable和“使用”关键字)
在Swift编程时如何处理?
答案 0 :(得分:2)
Swift seems to use有相同的内存管理模型,例如Objective-C,启用了ARC。
这意味着没有垃圾收集器。相反,当使用(强)引用时,ARC使用引用计数和编译器插入的递增和递减操作。
没有(线程)收集器意味着最终确定在Swift中是确定的。当最后一个引用超出范围时,对象将被释放。
答案 1 :(得分:0)
Swift启用ARC与Objective-C相同。您可以从Apple文档中找到参考资料。
除了 NikolaiRuhe 提到的swift的默认处理外,您可以使用deinit()
方法强制释放对象。如果您已实施任何内容,则可以使用此方法删除observers
。