ios - xib通知dealloc错误中的自定义UIView
<p><p>我不知道如何解决这个问题。</p>
<p>我有一个带有 xib 的 Controller(ControllerA)。
在那个xib里面我有一个自定义的UIView(UIViewA)。 UIViewA 在我所有的其他 xib 中作为页脚并加载了 awakeFromNib。</p>
<p>初始化代码如下:</p>
<pre><code>-(void)awakeFromNib
{
[ loadNibNamed:@"ICOMFooterView" owner:self options:nil];
;
[ addObserver:self selector:@selector(receivedNotification:) name:@"downloadNotification" object:nil];
;
}
</code></pre>
<p>在dealloc中:</p>
<pre><code>- (void)dealloc {
[ removeObserver:@"downloadNotification"];
}
</code></pre>
<p>当我导航到另一个 Controller 并返回时出现问题,它在 UIViewAView 中给了我一个释放异常。我所看到的是,当我返回到我的第一个 Controller 时,会调用 dealloc 并删除观察者......有没有办法在 View 再次出现时初始化通知?</p>
<p>不知道我解释的好不好。</p>
<p>提前谢谢你。 </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>这一行:</p>
<pre><code>[ removeObserver:@"downloadNotification"];
</code></pre>
<p>应该是:</p>
<pre><code>[ removeObserver:self];
</code></pre>
<p>因为参数是作为观察者要移除的对象,而不是通知的名称。</p>
<p>这个错误会导致被释放的 View 不会作为观察者被移除,所以下次发布通知时会崩溃。</p></p>
<p style="font-size: 20px;">关于ios - xib通知dealloc错误中的自定义UIView,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/23338675/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/23338675/
</a>
</p>
页:
[1]