使用 SnapKit 是否会导致内存泄漏

问题描述 投票:0回答:1

我正在使用

SnapKit
来处理我的
AutoLayout
。我想知道这段代码是否会导致内存泄漏,因为我在闭包中捕获 self ?

writtenUpSwitch.snp.makeConstraints {
    $0.trailing.equalToSuperview().inset(10)
    $0.centerY.equalTo(writtenUpLabel.snp.centerY)
}

此行

$0.centerY.equalTo(writtenUpLabel.snp.centerY)
正在闭包中访问
UILabel
而不使用
[weak self]
在另一个实例中,这将导致内存泄漏

ios swift automatic-ref-counting snapkit
1个回答
0
投票

不会,因为非逃逸闭包不需要保留

self
。执行后关闭将被释放。每当闭包逃脱创建它的函数的范围时,您只需要
[weak self]
[unowned self]
。一些例子:

UIView.animated(withDuration: 3) {
   self.view.alpha = 0
}

DispatchQueue.main.async {
   self.showAlert()
}
© www.soinside.com 2019 - 2024. All rights reserved.