2012-03-29 2 views
0

iOS 4.3 이상에서 잘 실행되는 AVPlayer가 있습니다.내부 KVO가 제거되기 전에 해제되는 AVPlayer?

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> 

이 확인 될 것이다, 그러나 직후, 이것이다 : 나는 그것이 아이폰 OS 4.2에 출근 할 때이 할당 해제 후 발생

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

내가 모두를 확인하기 위해 검사 내 관찰자는 제대로 제거되고, 나는 그들이 상당히 확신한다. 내 코드의 4.3에서 4.2까지의 유일한 차이점은 다음과 같습니다. HTTP Live Streaming with AVPlayer in iOS 4.0?

AVPlayer가 내부적으로 처리하는 것처럼 보이고 이미 해제 된 후 관찰자를 제거하려고합니다. 나는 미쳐 버릴 것인가, 아니면 그냥 4.2 버젼인가?

+0

이것은 AVPlayer의 버그 일 가능성이 큽니다. MPMoviePlayerController에서도 같은 것을 볼 수 있습니다. rdar에 대한 시간 : //. (여전히 iOS 5.1에 있음) – steipete

답변

0

코드를 다시 확인하십시오. 관찰자가 여전히 등록되어있는 것처럼 보입니다 : 엑스 코드 4 충고와 메모리에서 개체를 검사로

currentItem.nonForcedSubtitleDisplayEnabled

당신은 중단 점을 설정할 수 있습니다.

+0

나는 그 값에 대한 관찰자를 설정하지 않습니다. 내가하고있는 유일한 KVO는 player.currentItem의 "status"속성을위한 것이고 dealloc에서 해당 관찰자를 제거합니다. –

+0

dealloc 메서드를 게시하십시오! – Sam

관련 문제