ios - 添加 subview 时内存泄漏

标签 ios memory-leaks

添加 subview 时, View Controller 似乎泄漏了。

为什么下面打印'What'

import UIKit

final class ViewController: UIViewController {

    private lazy var mySwitch: UISwitch = {
        let mySwitch = UISwitch()
        mySwitch.tintColor = .blue
        return mySwitch
    }()

    func setup() {
        view.addSubview(mySwitch)
    }

    @objc func switchChangedState() {

    }

    deinit {
        print("what")
    }
}

var controller: ViewController? = ViewController()
controller = nil

但是下面没有

var controller: ViewController? = ViewController()
controller?.setup()
controller = nil

编辑:添加GIF

enter image description here

Xcode 版本 9.4.1 (9F2000)

最佳答案

你的代码很好。 controller?.setup() 不会导致泄漏。请确认测试用例2中的代码是否真的被调用。 (不打电话不打印“什么”)

关于ios - 添加 subview 时内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52175699/

相关文章:

ios - UIView subview 的顺序?

ios - 长按显示隐藏的 UIImage

iphone - AVAssetWriter 输出文件被旋转

c++ - 加载共享库 : libCstd. so.1 时出错:无法打开共享对象文件:没有这样的文件或目录

javascript - 解决 $.post 中的 Javascript/jQuery 内存泄漏问题

ios - 苹果新款3.3.1

ios - 在 iOS 中分发小部件的最佳方式

c - 哈希表泄漏内存

WPF 将图像保存在内存中

java - Eclipse Indigo 64 位严重内存泄漏