菜鸟教程小白 发表于 2022-12-13 16:43:51

iOS - NSConcreteData 崩溃


                                            <p><p>我有一个 <code>UIButton</code> 链接到一些调用 <code>UIPrintInteractionController</code> 以打印 PDF 文档的代码。</p>

<p>如果我点击按钮,会弹出 View 让我选择打印机,然后打印文档。但是,如果我在 View 外点击以关闭弹出窗口,然后<em>快速</em>再次点击“打印”按钮,我会遇到以下崩溃:</p>

<pre><code>: message sent to deallocated instance 0xa4696d0
</code></pre>

<p>我在启用 NSZombies 的情况下进行了调试,崩溃发生在这一行:</p>

<pre><code>printController.printingItem = dataToPrint;
</code></pre>

<p><code>dataToPrint</code> 以相同的方法实例化,但在此 <code>printController</code> 行之前:</p>

<pre><code>NSData *dataToPrint = ;
</code></pre>

<p>这种崩溃只有在我快速点击时才会发生,如果我稍等一下,一切都会顺利。</p>

<p>有人知道这可能是什么吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>使“dataToPrint”成为一个强大的 ivar,只有在您 100% 确定它不会再次使用时才将其设为 nil。 'printController.printingItem' 很可能会保留它,但是当您关闭弹出窗口时,它会在再次点击“打印”按钮之前被释放。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS - NSConcreteData 崩溃,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/12673232/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/12673232/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS - NSConcreteData 崩溃