菜鸟教程小白 发表于 2022-12-12 15:10:09

ios - Xcode lldb 不存储属性


                                            <p><p>我目前使用的是 Xcode 6.3.1。在调试区域,我暂停应用程序并在调试窗口中存储一个类似 <code>p NSString * $test = @"word"</code> 的属性。如果我键入 <code>po $test</code> 输出将是 <code>word</code>,这是完美的,但只要我让应用程序运行。当我再次暂停它超出类/方法的范围时,它们的属性似乎为零。当我输入 <code>p $test</code> 我的输出将是 <code>(NSString *) $test =</code>.</p>

<p>这是此版本 Xcode 的错误还是可以修复?</p>

<p>谢谢</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这里的问题是您正在创建一个 NSString 并将 lldb 便利变量设置为指向它。但是运行时不知道这个变量持有对它的引用。所以在某个时候 ARC 会释放实际的对象。</p>

<p>我们不会在 lldb 中保留/释放 lldb 便利变量。仅仅因为您碰巧在表达式中引用了某些内容,就很容易最终添加无关的保留,这会以不明显的方式改变程序的行为。</p>

<p>如果您希望使用表达式解析器创建的 ObjC 对象持久化,您可以在其上调用“objc_retain”。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Xcode lldb 不存储属性,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/30111648/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/30111648/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Xcode lldb 不存储属性