I have a CGPoint called point that is being assigned a touch:
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self];
I want to get the x coordinate value into my console log:
NSLog(@"x: %s", point.x);
When I use this, log output for this is:
x: (null)
I have verified that point is not null when this is called using the debugger and variable watch.
Any help appreciated,
Thanks // :)
Actually, the real easiest way to log a CGPoint
is:
NSLog(@"%@", NSStringFromCGPoint(point));
The desktop Cocoa equivalent is NSStringFromPoint()
.
point.x is a floating point number, so you should use:
NSLog(@"x: %f", point.x);
The simplest way to log a CGPoint
value is to use the NSValue
class, since it will give you all the relevant values formatted nicely for the console. It's done like so:
NSLog(@"myPoint = %@", [NSValue valueWithCGPoint:myPoint]);
You can also use the +valueWithCGRect
and +valueWithCGSize
methods of NSValue
when you're trying to log, say, the frame
(CGRect
) or size
(CGSize
) properties of a UIView
.
NSLog(@"point x,y: %f,%f", point.x, point.y);
point.x
is a floating point number so you should code like this:
NSLog(@"%@",[NSString StringWithFormat:@"%f",point.x]);
use :
NSLog(@"%@", NSStringFromCGPoint(point));
You can also use NSString for following info :
NSStringFromCGPoint NSStringFromCGSize NSStringFromCGRect NSStringFromCGAffineTransform NSStringFromUIEdgeInsets
Latest syntax:
NSLog("%@", NSCoder.string(for: point!))
Success story sharing
JA_DUMP(point);
and get “point = { 43, 96 }” logged without having to worry about format codes.