[英]CADisplayLink because of remove(from:forMode:) not deallocating view controller
我面临一个奇怪的问题。
所以我创建了实例并分配如下
var displayLink:CADisplayLink?
private func setupDisplayLink () {
self.displayLink = CADisplayLink(target: self, selector: #selector(displayLinkDidFire(link:)))
self.displayLink?.preferredFramesPerSecond = 30
self.displayLink?.add(to: .main, forMode: .common)
}
现在删除我从此答案中显示的链接
self.displayLink?.remove(from: .main, forMode: .common) // comment this line and view controller correctly deallocated
self.displayLink?.invalidate()
因为行self.displayLink?.remove(from: .main, forMode: .common)
我的deinit
方法没有调用视图控制器
在内存图中,我无法识别真正的问题。 我很幸运,我试图评论该线,它的工作原理
为什么这样?
像这样停止displayLink:
displayLink?.invalidate()
displayLink = nil
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.