并非所有值对象都可以在XCode的Watch和Debug控制台中查看。

5
例如,在initWithNibName:bundle:中,由于某种原因我看不到self.view.bounds.size.width的值,只能停止程序并使用NSLog。 当我在监视器中输入self.view.bounds.size.width时,右侧会显示“输入表达式”的消息。 当我在调试控制台中输入print self.view.bounds.size.width时,我会收到以下错误信息:
error: unsupported expression with unknown type
error: 1 errors parsing expression

有没有办法查看我可以使用 NSLog 查看的所有值?
编辑:根据@Abizern的建议,尝试了

p self.view.bounds.size.width

po self.view.bounds.size.width

- 结果相同。
2个回答

4

请看这个答案:https://dev59.com/cmMk5IYBdhLWcg3w3xvq#18923064

基本上,bounds并不是UIView的成员,而是层(layer)的成员。所以只需执行以下操作:

p self.view.layer.bounds

我也被这个问题搞疯了 :-(


4

尝试

p self.view.bounds.size.width

或者,另一种选择是:
po self.view 

p 是一个简单的打印函数,用于输出数值。

po 是用于打印对象的函数,实际上与 NSLog 的结果相同。


甚至可以使用p self.view.bounds,这在最新版本的Xcode中有效。 - zaph
你是否在这些变量的作用域内设置断点? - Abizern
是的。为了确保我在使用或分配此值之前和之后设置它们正确,并且仍然获得相同的结果。 - Sergey
因为self.view.frame没有bounds属性,你想要的是self.view.frame或self.view.bounds。 - Abizern
1
另外,由于bounds是一个CGRect结构体,而不是一个对象。如果您想使用po与它一起使用,请尝试po NSStringFromCGRect(self.view.bounds) - Abizern
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接