Выпуск AVPlayer перед удалением внутреннего КВО? - PullRequest
0 голосов
/ 30 марта 2012

У меня есть AVPlayer, который отлично работает на iOS 4.3 и выше.Когда я пытаюсь заставить его работать на iOS 4.2, это происходит после того, как dealloc:

An instance 0x69c3b0 of class AVPlayer was deallocated while key value observers were still registered with it. Observation info was leaked, and may even become mistakenly attached to some other object. Set a breakpoint on NSKVODeallocateBreak to stop here in the debugger. Here's the current observation info:
    <NSKeyValueObservationInfo 0x42626d0> (
    <NSKeyValueObservance 0x69f480: Observer: 0x666b20, Key path: currentItem.nonForcedSubtitleDisplayEnabled, Options: <New: NO, Old: NO, Prior: NO> Context: 0x3ea5b558, Property: 0x69f4c0>

Это было бы нормально, но сразу после этого:

-[NSKVONotifying_AVPlayer removeObserver:forKeyPath:]: message sent to deallocated instance 0x69c3b0

Я проверил наубедитесь, что все мои наблюдатели удалены должным образом, и я вполне уверен, что они удалены.Единственное отличие в моем коде от 4.3 до 4.2 заключается в следующем: HTTP Live Streaming с AVPlayer в iOS 4.0?

Мне кажется, что это что-то, что AVPlayer обрабатывает внутри, и пытаетсяудалить наблюдателя после того, как он уже был освобожден.Я схожу с ума или это просто ошибка с 4.2?

1 Ответ

0 голосов
/ 30 марта 2012

Дважды проверьте ваш код. Похоже, что наблюдатель все еще зарегистрирован для:

currentItem.nonForcedSubtitleDisplayEnabled

Вы можете установить точку останова, как рекомендовано в XCode 4, и проверить объект в памяти.

...