带有CGPoint数据的NSLog

时间:2009-09-25 10:22:15

标签: iphone cocoa cocoa-touch core-graphics nslog

我有一个名为CGPoint的点被分配了一个触摸:

UITouch *touch = [touches anyObject];

CGPoint point = [touch locationInView:self];

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

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

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

x :( null)

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

任何帮助表示赞赏,

谢谢//:)

6 个答案:

答案 0 :(得分:254)

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

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

桌面Cocoa等价物是NSStringFromPoint()

答案 1 :(得分:24)

point.x是浮点数,因此您应该使用:

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

答案 2 :(得分:9)

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

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

当您尝试记录+valueWithCGRect+valueWithCGSize)或NSValue时,也可以使用frame的{​​{1}}和CGRect方法size的{​​{1}}(CGSize)个属性。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

使用:

  

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

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

  

NSStringFromCGPoint
      NSStringFromCGSize
      NSStringFromCGRect
      NSStringFromCGAffineTransform
      NSStringFromUIEdgeInsets