Skip to main content

NSLog with CGPoint data



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 // :)


Comments

  1. Actually, the real easiest way to log a CGPoint is:

    NSLog(@"%@", NSStringFromCGPoint(point));


    The desktop Cocoa equivalent is NSStringFromPoint().

    ReplyDelete
  2. point.x is a floating point number, so you should use:

    NSLog(@"x: %f", point.x);

    ReplyDelete
  3. 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.

    ReplyDelete
  4. point.x is a floating point number, so you should use:

    NSLog(@"%@",[NSString StringWithFormat:@"%f",point.x]);

    ReplyDelete
  5. NSLog(@"point x,y: %f,%f", point.x, point.y);

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?