当我在Xcode中调试Swift应用程序时,调试器需要Swift格式的表达式。如何将其切换为期望Objective-C表达式?
例如,我希望能够输入{{1}}而不是Swift等价物。
答案 0 :(得分:11)
Swift 3.0或使用前: 您可以使用以下命令识别LLDB中所有可用语言的名称。
Swift 4.0
创建“eco”之类的别名来打印objective-c对象:
(lldb)command alias eco expression -l objective-c -o --
(lldb)eco [[UIApplication sharedApplication] userHomeDirectory]
/Users/...
答案 1 :(得分:1)
Advanced debugging with Xcode and LLDB显示可以使用以下命令完成此操作:
expression -l objc -O -- [doYourStuff here]
但是这里需要注意一个重要的事情,从Swift切换到Objective C框架会创建一个新上下文。实际上,这意味着您可能会遇到类似以下错误:
error: use of undeclared identifier 'self'
为避免此问题,您需要将所有需要在上下文更改前进行评估的变量括在反引号`
中。例如:
expression -l objc -O -- [`self` class]