gpt4 book ai didi

ios - xib通知dealloc错误中的自定义UIView

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:02 25 4
gpt4 key购买 nike

我不知道如何解决这个问题。

我有一个带有 xib 的 Controller (ControllerA)。在那个 xib 里面我有一个自定义的 UIView (UIViewA)。 UIViewA 在我的所有其他 xib 中作为页脚并加载了 awakeFromNib。

初始化代码如下:

-(void)awakeFromNib

{
[[NSBundle mainBundle] loadNibNamed:@"ICOMFooterView" owner:self options:nil];
[self addSubview:self.footerView];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receivedNotification:) name:@"downloadNotification" object:nil];
[self checkIsDownloading];
}

在 dealloc 中:

- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:@"downloadNotification"];
}

当我导航到另一个 Controller 并返回时,问题就出现了,它在 UIViewA View 中给我一个释放异常。我所看到的是,当我返回到我的第一个 Controller dealloc 被调用并且观察者被删除时......有没有办法在 View 再次出现时初始化通知?。

不知道我有没有解释的很好。

提前致谢。

最佳答案

这一行:

[[NSNotificationCenter defaultCenter] removeObserver:@"downloadNotification"];

应该是:

[[NSNotificationCenter defaultCenter] removeObserver:self];

因为参数是作为观察者移除的对象,而不是通知的名称。

此错误将导致取消分配的 View 不会作为观察者被删除,因此您将在下次发布通知时发生崩溃。

关于ios - xib通知dealloc错误中的自定义UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23338675/

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