У меня ошибка NSInternalInconsistencyException, когда я пытаюсь передать песню из url с помощью AVPlayer. Я создаю глобальный потоковый проигрыватель в структуре, чтобы мой потоковый проигрыватель мог использовать глобально.Как исправить исключение 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
и вот лог ошибок:
2015-10-20 10: 00: 41,453 joove [6466: 141737] *** Завершение приложения из-за неперехваченного исключения «NSInternalInconsistencyException», причина: «Экземпляр 0x7f88138c2490 класса AVPlayer был освобожден, а наблюдатели с ключевыми значениями все еще были зарегистрированы с ним. Информация о текущем наблюдения: ( Контекст: 0x0, свойство: 0x7f8815e6ca70> )»
Как я могу исправить это? Дайте мне какие-либо предложения obj-c или swift
Ну, сообщение об ошибке довольно ясно, и вы очень хорошо сосредоточились на коде. Вы добавляете наблюдателя KVO к 'User.songPlayer', но позже' User.songPlayer' выходит из существования, по-видимому, потому, что «Пользователь» выходит из существования, без вашего удаления наблюдателя. Вы не должны этого допустить. – matt