[英]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.