解决内存泄漏问题遇到困难

3
这是我为自己构建的第一个应用程序尝试修复内存泄漏问题。当我使用Leaks工具时,在我的登录视图控制器上发现了1个泄露,据我所知,这与我正在使用的音频工具箱(AVFoundation)有关,我将其用于循环视频背景。
因此,我认为我应该尝试将 AVPlayer 变量设置为weak,但对泄漏没有任何影响。
如何正确地解决此泄漏问题?
以下是与循环背景视频相关的代码...
           weak var player : AVPlayer?
           weak var playerLayer : AVPlayerLayer?


         override func viewDidLoad() {
              super.viewDidLoad()

              playBackgroundVideo()
          }



         func playBackgroundVideo() {
            guard let path = Bundle.main.path(forResource: "dumbbells2480", ofType: "mov") else { return }
            player = AVPlayer(url: URL(fileURLWithPath: path))
            player!.actionAtItemEnd = AVPlayer.ActionAtItemEnd.none
            playerLayer = AVPlayerLayer(player: player)
            playerLayer!.frame = self.view.frame
            playerLayer!.videoGravity = AVLayerVideoGravity.resizeAspectFill
            self.view.layer.insertSublayer(playerLayer!, at: 0)
            NotificationCenter.default.addObserver(self, selector: #selector(playerItemDidReachEnd), name: Notification.Name.AVPlayerItemDidPlayToEndTime, object: player!.currentItem)
            NotificationCenter.default.addObserver(self,selector: #selector(playItem),name: UIApplication.willEnterForegroundNotification, object: nil)
            
            player!.seek(to: CMTime.zero)
            player!.play()
            self.player?.isMuted = true
            
            view.bringSubviewToFront(authStackView)
        }
        
        @objc func playerItemDidReachEnd(){
            player!.seek(to: CMTime.zero)
        }
        
        @objc private func playItem() {
            playerItemDidReachEnd()
            player?.play()
            
            if let playerlayer = playerLayer {
                view.layer.insertSublayer(playerlayer, at: 0)
            }
        }

enter image description here


1
你因为泄露了16个字节而感到担忧? - matt
抱歉,我不太清楚我应该或不应该担心什么。我认为几乎任何泄漏都需要解决,但如果我错了,请纠正我。我是一个非常新手的人。 - Gary Nazarian
1个回答

1

这个泄漏非常微小(仅16字节,强显微镜下也难以看清),而且从你展示的Instruments显示中没有证据表明它与你的代码有任何关系。最佳策略:继续前进。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接