带有CGPoint数据的NSLog

Spa*_*nky 92 iphone cocoa cocoa-touch core-graphics nslog

我有一个CGPoint称为点被分配触摸:

UITouch *touch = [touches anyObject];

CGPoint point = [touch locationInView:self];
Run Code Online (Sandbox Code Playgroud)

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

NSLog(@"x: %s", point.x);
Run Code Online (Sandbox Code Playgroud)

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

x :( null)

我已经验证,使用调试器和变量监视调用此点时,该值不为null.

任何帮助,赞赏,

谢谢 // :)

Jen*_*ton 256

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

NSLog(@"%@", NSStringFromCGPoint(point));
Run Code Online (Sandbox Code Playgroud)

桌面Cocoa的等价物是NSStringFromPoint().

  • 另外值得注意的是,NSStringFromCGRect()也存在. (3认同)

Phi*_*ert 24

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

NSLog(@"x: %f", point.x);
Run Code Online (Sandbox Code Playgroud)


Nat*_*ies 9

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

NSLog(@"myPoint = %@", [NSValue valueWithCGPoint:myPoint]);
Run Code Online (Sandbox Code Playgroud)

您还可以在尝试记录时使用+valueWithCGRect+valueWithCGSize方法NSValue,例如,a的frame(CGRect)或size(CGSize)属性UIView.