0
我基本上有一個菜單,其中顯示一堆按鈕,每次點擊它們時,它會導致顯示不同的相同視圖,這取決於從菜單中選擇的項目,還有一個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()
}
}
我張貼整個事情,因爲我真的不知道什麼可能會導致此。
我認爲他們會被刪除,當我segue到其他視圖,如果不是這種情況我怎麼能刪除它們? – snukumas
我沒有遇到過這個問題,但試試這個問題/答案:http://stackoverflow.com/questions/10789766/remove-all-sublayers-from-a-view – Dave2e
這是非常有用的,你能給我一個例子嗎?這將如何實現到我的代碼中,即時通訊不完全確定我明白這應該如何實現,因爲在哪裏我會把這行代碼self.view.layer.performSelector(「removeFromSuperlayer」)和什麼我需要調整它以適合我的代碼 – snukumas