ich ein einfaches UIView Kind habe, und ich bin sehr verwirrt, warum ich diesen Fehler bin immer (die die App zum Absturz bringt):observeValueForKeyPath: Nachricht an deallokierten Instanz gesendet
[VideoView observeValueForKeyPath:ofObject:change:context:]: message sent to deallocated instance 0x13009b670
Hier das ist VideoView
Klasse:
@implementation VideoView
- (id)init {
self = [super init];
if (self) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(stopVideo)
name:UIApplicationDidEnterBackgroundNotification
object:nil];
}
return self;
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
//.. stopVideo method
@end
Hat mein nicht dealloc
sicherzustellen, dass eine Benachrichtigung nie an einen ausgeplanten Instanz gesendet wird? Wie sonst kann ich das verhindern?
iOS 9, aktiviert ARC
Ahh rechts, Hinzufügen von '[self.player removeObserver: self forKeyPath: @" currentItem.status "];' löste das Problem. Seien Sie jedoch vorsichtig bei Ausnahmen: http://stackoverflow.com/questions/1582383/how-can-i-tell-if-an-object-has-a-key-value-observer-attached – Cbas