Objective c 尝试将触控释放到位置时,始终返回零(0)作为x位置

Objective c 尝试将触控释放到位置时,始终返回零(0)作为x位置,objective-c,iphone,cocoa-touch,uitouch,Objective C,Iphone,Cocoa Touch,Uitouch,在为我的视图编写ToucheSStart处理程序时,我遇到了一个有趣的错误 代码: 问题是,无论我在哪里“触摸”,x始终是零,y是一个巨大的数字,它的值在1070000000到1090000000之间 句柄位于视图类中,其工作原理与我将nil而不是self传递给locationInView时相同。我也尝试过在所有的触摸上循环,只有一个x始终为零 那么我做错了什么呢?您是否有可能正在使用NSLog(@“%d,%d”,point.x,point.y);打印点值?听起来有点像浮点->整数转换错误。我经

在为我的视图编写ToucheSStart处理程序时,我遇到了一个有趣的错误

代码:

问题是,无论我在哪里“触摸”,x始终是零,y是一个巨大的数字,它的值在1070000000到1090000000之间

句柄位于视图类中,其工作原理与我将nil而不是self传递给locationInView时相同。我也尝试过在所有的触摸上循环,只有一个x始终为零


那么我做错了什么呢?

您是否有可能正在使用NSLog(@“%d,%d”,point.x,point.y);打印点值?听起来有点像浮点->整数转换错误。我经常使用locationInView:我从来没有遇到过这样的问题


您还可以尝试检查[self frame]以确保它不是零。

Ben是对的。问题是当您尝试在
NSLog
中使用
%d
打印值时,因为
point.x
point.y
是浮点值。

我使用的是printf。。。真是个新手犯的错误。我一直把objc当作Python,而它显然更像c。
...
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self];
...