0

这困扰了我好几次。

例如,我正在调试一个自定义子视图。

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

我输入:

(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>

这不是很多信息。它没有解释框架是什么或事情的去向。

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

在此处输入图像描述

假设我想知道一些简单的信息。什么是 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)

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

我错过了什么?

4

1 回答 1

1

请避免在你的问题中抱怨——人们必须阅读大量“它不能按照我想要的方式工作”才能解决任何真正的问题——这就是我们来这里不是为了听你发泄你的挫败感.

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

因此,要获得子视图,您需要执行类似的操作

po [self.view subviews]
于 2012-10-22T11:14:46.300 回答