36

我正在调试我的代码并尝试使用以下方法计算视图的大小:

p view.frame.size.height

但我收到此错误:

错误:在“UIView *”类型的对象上找不到属性“框架”错误:1 解析表达式错误

你们中的任何人都知道为什么或如何调试视图的大小吗?

4

7 回答 7

87

如果你每次都讨厌类型转换,你可以试试这个:

(lldb) expr @import UIKit
(lldb) po self.view.bounds

由于 Xcode 7.2 现在可用,我认为我们应该更新答案。
我在这里找到了答案,为什么 LLDB 不能打印 view.bounds?

于 2016-03-07T06:26:53.200 回答
53

尝试这个

p (CGRect)[view frame]

获取视图框架的替代方法:

po view
于 2013-06-04T19:49:02.007 回答
6

尝试这个,

po view.layer.frame.size.height
于 2017-05-19T10:30:00.927 回答
3

它应该在第一个答案中有外括号,如下所示:

p ((CGRect)[cell frame])

输出:

(CGRect) $5 = origin=(x=0, y=0) size=(width=320, height=44)
于 2015-07-31T02:20:33.090 回答
1

添加一个 pch 文件,将这些代码行添加到文件中:

#ifndef PrefixHeader_pch
#define PrefixHeader_pch

#ifdef __OBJC__
#import <UIKit/UIKit.h>
#endif  

#endif /* PrefixHeader_pch */    

接下来,将 pch 文件链接到您的项目:

在此处输入图像描述

再次运行应用程序,您应该可以在 lldb 控制台中使用点符号:

(lldb) po self.view.bounds    

有关如何添加 pch 文件,请参阅此处的答案PCH File in Xcode 6

于 2016-10-30T11:52:17.493 回答
0

看来我们不能在控制台中使用点符号,尝试使用 get 方法。

于 2017-11-22T02:50:23.747 回答
-2

我有同样的问题,我解决了。您的类可能继承自“UIViewController”。它必须从“UIView”继承,以便在其中创建一个框架对象。

于 2015-02-26T06:21:30.950 回答