gpt4 book ai didi

ios - observeValueForKeyPath : message sent to deallocated instance

转载 作者:行者123 更新时间:2023-11-28 21:28:55 28 4
gpt4 key购买 nike

我有一个简单的 UIView 子项,我很困惑为什么会收到此错误(导致应用程序崩溃):

[VideoView observeValueForKeyPath:ofObject:change:context:]:发送到释放实例 0x13009b670 的消息

这是 VideoView 类:

@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

难道我的 dealloc 不能确保通知永远不会发送到已解除分配的实例吗?我还能如何防止这种情况发生?

iOS 9,启用 ARC

最佳答案

你把事情搞混了。该错误不是由 NSNotificationCenter 通知引起的。在你的代码中某处你正在使用 key-value observing并且当对象被释放时你没有删除那个观察者,这就是你发生崩溃的原因。

关于ios - observeValueForKeyPath : message sent to deallocated instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37012299/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com