我正在浏览iPhone开发教程,我有一个奇怪的错误,我正在调查使用调试器。我有以下代码检查对象是否在边界内。我试图看看ball.center.x的值在某一点上是什么,但是因为center是一个属性访问器选择器,当我将它悬停在Xcode调试器中时,我没有得到该值。
if (ball.center.x > self.view.bounds.size.width || ball.center.x < 0) {
ballVelocity.x = -ballVelocity.x;
}
有办法做到这一点吗?我想我一定是错过了什么。我想我可以更新代码以将值赋给我可以在调试器中观察的变量,但这似乎是一个普遍问题的草率工作。
谢谢!
答案 0 :(得分:2)
我假设中心是CGPoint。
除了Xcode GUI调试器之外,在调试时还有一个gdb提示符。试试这个:
p* ball
或
p ball.center
答案 1 :(得分:2)
然后还有令人尊敬的快速和肮脏:
if (ball.center.x > self.view.bounds.size.width || ball.center.x < 0) {
NSLog(@"ball center: %d",ball.center.x);
ballVelocity.x = -ballVelocity.x;
}
答案 2 :(得分:2)
试试这个 gdb 命令:
p (CGPoint)[ball center]
我在UIView.frame中使用这个技巧,它可以工作。
答案 3 :(得分:0)
除了使用gdb控制台之外,还有更简单的方法。从主菜单中选择:
Run -> Variables View -> View in expression window
在表达式窗口的文本字段中输入:
(CGPoint)[ball center]
表达式窗口显示“超出范围”错误消息的主要问题是它几乎从不知道函数(或方法)的返回类型,因此它不知道如何呈现返回的变量。 Apple在“使用表达式窗口的提示”窗口下为我们提供了一些线索here。