菜鸟教程小白 发表于 2022-12-12 11:43:25

IOS,带有观察者的自定义表格 View 单元,如何分离观察者


                                            <p><p>所以我们有了这个带有它自己的类的表格 View 自定义单元格。在类里面,我们正在使用 Key Value Pair Observers。是的,我们有理由这样做......</p>

<p>无论如何,在某些时候正在变得......</p>

<pre><code>An instance 0x7680410 of class CustomCellBase 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.
</code></pre>

<p>这当然是因为细胞被“重用”了。</p>

<p>清除这些的最佳方法是什么?
有办法吗?
是不是我们不能在自定义表格单元格中使用观察者?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>当单元格从 View 中移除时,您需要停止观察它。</p>

<pre><code>- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    [ removeObserver:cell];
}
</code></pre>

<p>否则 NSNotificationCenter 将尝试在已删除的单元格上触发选择器,从而导致错误。当然,当单元格出现时,您需要重新注册。</p></p>
                                   
                                                <p style="font-size: 20px;">关于IOS,带有观察者的自定义表格 View 单元,如何分离观察者,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/17069192/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/17069192/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: IOS,带有观察者的自定义表格 View 单元,如何分离观察者