我目前使用的是 Xcode 6.3.1。在调试区域,我暂停应用程序并在调试窗口中存储一个类似 p NSString * $test = @"word" 的属性。如果我键入 po $test 输出将是 word ,这是完美的,但只要我让应用程序运行。当我再次暂停它超出类/方法的范围时,它们的属性似乎为零。当我输入 p $test 我的输出将是 (NSString *) $test = .
这是此版本 Xcode 的错误还是可以修复?
谢谢
Best Answer-推荐答案 strong>
这里的问题是您正在创建一个 NSString 并将 lldb 便利变量设置为指向它。但是运行时不知道这个变量持有对它的引用。所以在某个时候 ARC 会释放实际的对象。
我们不会在 lldb 中保留/释放 lldb 便利变量。仅仅因为您碰巧在表达式中引用了某些内容,就很容易最终添加无关的保留,这会以不明显的方式改变程序的行为。
如果您希望使用表达式解析器创建的 ObjC 对象持久化,您可以在其上调用“objc_retain”。
关于ios - Xcode lldb 不存储属性,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/30111648/
|