调试时无法在方法中检查Self

时间:2016-03-08 07:59:49

标签: objective-c debugging

我的一个ViewController上有一个方法,它的一个视图被调用并传递了一些价值。然后它向管理器对象发送一条消息,其中包含有关VC状态的一些信息。

- (void)elementXChangedWithValue:(float)value {

   ParameterManager * pMan = [ParameterManager sharedInstance];
   [pMan updateParameter:self.elementX.parameter value:value];

}

在调试中,对我来说检查.SomeElement.parameter状态是什么非常重要,这样我才能知道在我到达ParameterManager时翻译中丢失了什么。

不幸的是,虽然Self绝对是非零且可访问的,但调试器显示有关该类的信息很少,因此难以快速实用地查看该值。 (不过,我有时会在调试器命令行中调用" po"命令。)

虽然ViewController是一个完全的Objective-C类,但不确定它是否有帮助,但是这个项目在Objective-C / Swift互操作性方面运行得很重。

这是我在调试器中获得的图像。下拉箭头只显示空白。 debugger

2 个答案:

答案 0 :(得分:1)

调试器并不完美,有时您无法看到某些区域中的内容,例如self。尽管如此,NSLog的代码仍然存在,所以如果所有其他方法都失败了,请在正确的位置添加其中一个以打印出您想要了解的对象。

答案 1 :(得分:0)

调试器在执行这些命令后可能会显示更多信息:

expr @import UIKit;
expr @import Foundation;

这会在运行时在调试器中加载整个UIKit和Foundation符号,每个调试会话只需要执行一次。

您可以使用用户定义的断点自动执行此操作,每次应用程序在调试器中启动时都会触发该断点。

来源:http://furbo.org/2015/05/11/an-import-ant-change-in-xcode/

相关问题