2015-07-20 171 views
2

调试的Objective-C每当我尝试读取UIViewframe例如在调试时,我得到这个错误:进口的UIKit默认情况下为

error: property 'frame not found on object of type 'UIView *'
error: 1 errors parsing expression

寻找解决的办法后,我发现我可以使用这个命令来解决这个不添加(讨厌,在某些情况下,复杂的)转换:

expr @import UIKit; 

但我仍然觉得这恼人有这个每次做(为什么Xcode不会默认这样做?!),所以我认为我应该可以使用.lldbinit文件来做到这一点,但我无法让它工作。

我不知道很多关于这个文件,我在里面有这样ATM:

command script import /usr/local/opt/chisel/libexec/fblldb.py 

所以我试图在文件的末尾添加UIKit导入命令,但没有看它工作。我也试着用command加前缀来无济于事。这是否可能? (请说是,它会挽救我的生命)

回答

5

lldb会自动导入调试信息告诉我们程序现在很快导入的模块。所有的作品都不适合第一代Xcode 7发布。

.lldbinit中的语句在主文件读入之前运行,它应该有助于设置环境以读取程序。但是那时候没有什么可以导入这些符号的。您需要在读入主二进制文件之后执行此操作(并且在运行后您确实需要这样做,因为我认为我们需要运行一些代码来执行此操作。)

目前,最简单的方法这样做是为了在main上创建一个自动继续断点,并在该断点处附加expr @import UIKit语句作为调试器命令。每创建一个新项目,您都必须执行此操作,但如果您在同一个项目上工作一段时间,则不是一种非常不方便的解决方法。

+1

哇,从来没有想过这个简单的解决方案。谢谢!我希望它不会减慢项目运行速度。另外,我认为将断点移至用户解决了多个项目带来的不便。 –