Iphone 在移除内部KVO之前释放AVPlayer?

Iphone 在移除内部KVO之前释放AVPlayer?,iphone,ios,key-value-observing,avplayer,Iphone,Ios,Key Value Observing,Avplayer,我有一个在iOS 4.3及以上版本上运行良好的AVPlayer。当我试图让它在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

我有一个在iOS 4.3及以上版本上运行良好的AVPlayer。当我试图让它在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>
我检查了一下,以确保我所有的观察者都被正确地移除了,我相当肯定他们是这样的。我的代码从4.3到4.2的唯一区别是:


在我看来,这就像是AVPlayer正在内部处理的事情,并试图在发布观察器之后删除它。我是疯了还是这只是4.2的一个bug?

请仔细检查您的代码。似乎观察员仍在注册:

currentItem.NoForcedSubtitleDisplayEnabled已启用


您可以按照XCode 4中的建议设置断点并检查内存中的对象。

不过,我从未为该值设置观察者。我正在做的唯一KVO是针对player.currentItem的status属性,我正在删除dealloc中的观察者。请发布您的dealloc方法!这很可能是AVPlayer中的错误。在MPMoviePlayerController中也可以看到同样的情况。rdar的时间://。在iOS 5.1中仍然存在
-[NSKVONotifying_AVPlayer removeObserver:forKeyPath:]: message sent to deallocated instance 0x69c3b0