93

我有一个名为 point 的 CGPoint,它被分配了一个触摸:

UITouch *touch = [touches anyObject];

CGPoint point = [touch locationInView:self];

我想将 x 坐标值放入我的控制台日志中:

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

当我使用它时,日志输出是:

x:(空)

当使用调试器和变量 watch 调用它时,我已经验证了该点不为空。

任何帮助表示赞赏,

谢谢 // :)

4

6 回答 6

260

实际上,记录 a 最简单的方法CGPoint是:

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

桌面 Cocoa 等价物是NSStringFromPoint().

于 2009-09-25T12:07:50.957 回答
24

point.x 是一个浮点数,所以你应该使用:

NSLog(@"x: %f", point.x);
于 2009-09-25T10:25:04.643 回答
9

记录值的最简单方法CGPoint是使用NSValue类,因为它会为您提供所有相关值,这些值的格式都适合控制台。它是这样完成的:

NSLog(@"myPoint = %@", [NSValue valueWithCGPoint:myPoint]);

您还可以在尝试记录时使用+valueWithCGRect+valueWithCGSize方法,例如 a 的( ) 或( ) 属性。NSValueframeCGRectsizeCGSizeUIView

于 2009-09-25T10:35:29.317 回答
2

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

于 2010-11-12T11:19:35.750 回答
0

point.x是一个浮点数,所以你应该这样编码:

NSLog(@"%@",[NSString StringWithFormat:@"%f",point.x]);
于 2010-09-06T13:40:21.420 回答
0

采用 :

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

您还可以使用 NSString 获取以下信息:

NSStringFromCGPoint
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets

于 2016-05-22T21:22:25.160 回答