我得到NSInternalInconsistencyException錯誤,每當我嘗試從使用AVPlayer的URL流的歌曲。我在結構體上創建一個全局流播放器,這樣我的流播放器就可以在全局中使用。如何解決NSInternalInconsistencyException?
這裏是我的代碼玩一首新歌:
User.songPlayer = AVPlayer(URL: NSURL(string: User.streamSongUrl!)!)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "playerItemDidReachEnd:", name: AVPlayerItemDidPlayToEndTimeNotification, object: User.songPlayer?.currentItem)
User.songPlayer?.addObserver(self, forKeyPath: "status", options: [], context: nil)
slidetimer = NSTimer.scheduledTimerWithTimeInterval(0.0, target: self, selector: "updateSlider", userInfo: nil, repeats: true)
progressBar.hidden = true
progressTimerLabel.text = "PREVIEW"
progressMinTimeLabel.hidden = true
,這裏是錯誤日誌:
二〇一五年十月二十日10:00:41.453 joove [6466:141737] ***因未捕獲異常'NSInternalInconsistencyException'而終止應用程序,原因:'AVPlayer類的實例0x7f88138c2490已被釋放,而鍵值觀察者仍在其中註冊。現有的觀測信息:( 語境:爲0x0,物業:0x7f8815e6ca70> )」
我該如何解決呢? 給我任何建議無所謂obj-c或swift
那麼,錯誤信息是非常清楚,你已經非常好的代碼。你正在爲'User.songPlayer'添加一個KVO觀察者,但後來'User.songPlayer'已經不存在了,大概是因爲'User'已經不存在了,沒有你刪除觀察者。你絕不能讓這種事情發生。 – matt