views:

148

answers:

1

While writing the touchesBegan handler for my view I ran into this interesting error.

Code:

...
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self];
...

The problem is point.x is always zero, no matter where I "touch" and y is a huge number that flunctuates somewhere between 1070000000 and 1090000000.

The handles is in a view class and it works the same is I pass nil instead of self to locationInView. I also tried looping over all of the touches, and there is only that one with x as zero always.

So what am I doing wrong here?

+1  A: 

Hey,

Any chance you're using NSLog(@"%d, %d", point.x, point.y); to print out the point values? It sounds kind of like a float -> int conversion error. I've used locationInView: a lot, and I've never had a problem like this.

You might also try checking [self frame] to make sure it's nonzero.

Ben Gotow
I am using printf... What a rookie mistake. I keep treating obj c like Python when it is clearly more C.
Mikle