简单菜单应用程序上的内存蠕变



我本质上有一个菜单,其中显示了一堆按钮,每次单击其中一个按钮时,它都会导致相同的视图,该视图根据从菜单中选择的项目而以不同的方式显示,还有一个mp4正在播放。每次我进入其中一个项目(不同的视图)或返回菜单时,我的记忆都会增加并且永远不会下降,如果这有任何不同,视图会以模式呈现。我猜蠕变是由mp4引起的,我该如何解决这个问题?

import Foundation
import UIKit
import AVKit
import AVFoundation
class menu : UIViewController {

var info : AVPlayer?
var count = 0
@IBAction func instrumentas2(sender: UIButton) {
    count = 2
}
@IBAction func instrumentas1(sender: UIButton) {
    count = 1
}
@IBAction func instrumentas0(sender: UIButton) {
    count = 0    }

override func viewWillAppear(animated: Bool) {

     let videoURL: NSURL = NSBundle.mainBundle().URLForResource("info2", withExtension: "mp4")!

        info = AVPlayer(URL: videoURL)
        info?.actionAtItemEnd = .None
        info?.muted = true

        let playerLayer = AVPlayerLayer(player: info)
        playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
        playerLayer.zPosition = 1
        playerLayer.frame = CGRect(x:20.0, y: 703.0, width: 36.0, height: 36.0)

        view.layer.addSublayer(playerLayer)
        info?.play()
        NSNotificationCenter.defaultCenter().addObserver(self,
            selector: "loopVideo",
            name: AVPlayerItemDidPlayToEndTimeNotification,
            object:nil)


}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    NSNotificationCenter.defaultCenter().removeObserver(self, name:AVPlayerItemDidPlayToEndTimeNotification, object: nil)
    let du:display = segue.destinationViewController as! display
    du.skaicius = count
}
func loopVideo() {
    info?.seekToTime(kCMTimeZero)
    info?.play()
}
}

发布整个事情是因为老实说,我不确定是什么原因造成的。

这行代码:

 view.layer.addSublayer(playerLayer)

正在添加子图层。 您是否曾经删除过它们?

最新更新