6

我正在开发一个中等规模的 iOS 代码库,并不是主要的开发人员。我经常发现自己处于在 iOS 模拟器中运行应用程序的位置,看到一个我知道我想编辑或使用的视图(例如,我想获取其文本的文本视图),但没有一个好的将所述视图追溯到代码库中的文件的方式。我的问题是,是否有任何好的方法(确定性或启发式)从人们在 iOS 模拟器中应用程序的运行实例化中看到的视图“回溯”回实际定义/包含的代码文件/接口构建器文件说观点?

例如,我在模拟器中看到一个文本视图,我想设置不同的文本,我想要一种方法来找到定义文本视图的 .xib/storyboard 和/或任何 IBOutlet 的。我曾尝试使用Reveal App,它似乎提供了有关应用程序的整体视图结构和视图类的一些信息,但我无法将其引用回代码和/或界面构建器文件。 Reveal App确实显示了视图的内存地址 - 也许有一种方法可以将它与 lldb 结合使用来确定视图来自哪个文件?

4

2 回答 2

3

我知道这是一个非常古老的问题。但是,如果您仍在寻找答案,您可以在任意点中断执行并使用 lldb 打印出一些信息。

然后,例如,如果您的应用程序与大多数其他应用程序一样,具有 UINavigationController 作为根视图控制器,那么您可以尝试查看顶部视图控制器是什么。如果那是 TabView,那就多挖一点……你明白了……

po [(UINavigationController *)[[[UIApplication sharedApplication] keyWindow] rootViewController] topViewController]

这似乎工作得很好。不是太直截了当,但也不错。

于 2014-06-13T15:45:00.810 回答
0

执行此操作的一种方法是按住 Ctrl 键并单击要编辑的插座(文本视图或其他)并查看连接的位置。或者您可以单击需要编辑的项目并检查右侧的 Connections Inspector 并查看它所连接的内容。

这不会告诉你它的确切位置,但它会给你一个想法。然后你可以梳理它指向的区域中的代码,看看它在哪里被引用等等。

此外,如果您这样做,您可以看到出口的名称,然后可以搜索该出口的代码或项目。

于 2013-08-29T01:11:25.767 回答