菜鸟教程小白 发表于 2022-12-13 02:52:05

ios - 当使用 ARC 从 UIView 调用 dealloc 时,我可以假设 ivars 仍然保留吗?


                                            <p><p>我在 UIView 的一个子类上添加一个 KVO 观察者到它的一个 subview 。我对 subview 也有很强的引用。当我在 <code>dealloc</code> 的 subview 上调用 <code>removeObserver</code> 时,我可以假设 subview 仍然存在吗?我不想泄露观察者。 </p>

<p>基本上,ARC中调用<code>dealloc</code>时,是在这个调用之前还是之后自动调用<code></code>?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>来自 <a href="http://clang.llvm.org/docs/AutomaticReferenceCounting.html" rel="noreferrer noopener nofollow">http://clang.llvm.org/docs/AutomaticReferenceCounting.html</a> </p>

<blockquote>
<p>A class may provide a method definition for an instance method named
<code>dealloc</code>. This method will be called after the final <code>release</code> of the
object but before it is deallocated or any of its instance variables
are destroyed. The superclass’s implementation of <code>dealloc</code> will be
called automatically when the method returns.</p>
</blockquote>

<p>所以<code></code>在调用子类<code>dealloc</code>实现之后<em>被调用</em>。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 当使用 ARC 从 UIView 调用 dealloc 时,我可以假设 ivars 仍然保留吗?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/16969288/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/16969288/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 当使用 ARC 从 UIView 调用 dealloc 时,我可以假设 ivars 仍然保留吗?