使用xcode进行调试时,我们如何快速了解视图的帧(或其他信息)?

时间:2012-10-22 11:04:14

标签: objective-c xcode debugging uiview

这让我有几次困扰。

我正在调试自定义子视图。

我想知道自定义子视图的子视图类型。

我输入:

(lldb) po self.subviews
error: property 'subviews' not found on object of type 'BGBaseOfAllUIView *'
error: 1 errors parsing expression
(lldb) 

鉴于self是UIView作为祖先并支持.subviews属性,这是愚蠢的。

我输入

(lldb) po self
(BGDetailBusinessViewController *) $2 = 0x088d01f0 <BGDetailBusinessViewController: 0x88d01f0>

这不是很多信息。它没有解释框架是什么或在哪里发生。

所谓的变量视图也无济于事。

enter image description here

说我想知道一些简单的信息。什么是self.subviews?什么是self.frame?

为什么这么简单的事情是如此困难?

如何这样做的唯一方法是从我的朋友那里借一个代码并添加

#define CLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#define PO(x) CLog(@#x ": %@", x)

但那不是实时的。我必须先修改程序并插入东西才能获得那些简单的信息。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

请避免在你的问题中呻吟 - 人们必须阅读很多“它不能按照我的意愿行事”才能得到任何真正的问题 - 这就是我们在这里不听你的意思发泄你的挫折。

首先要注意的是:BGDetailBusinessViewController是一个viewController而不是一个视图 - 所以没有它没有子视图但它管理一个视图层次结构。根视图将是名为view的ivar。

因此,要获取子视图,您需要执行类似

的操作
po [self.view subviews]