it-swarm.com.ru

NSLog с данными CGPoint

У меня есть точка вызова CGPoint, которой назначают прикосновение:

UITouch *touch = [touches anyObject];

CGPoint point = [touch locationInView:self];

Я хочу получить координату х в моем журнале консоли:

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

Когда я использую это, вывод журнала для этого:

х: (ноль)

Я убедился, что точка не равна нулю, когда она вызывается с помощью отладчика и наблюдения за переменными.

Любая помощь приветствуется,

Спасибо // :)

88
Spanky

На самом деле, самый простой способ зарегистрировать CGPoint:

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

Эквивалент Какао на рабочем столе - NSStringFromPoint().

249
Jens Ayton

point.x - это число с плавающей запятой, поэтому вы должны использовать:

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

Самый простой способ зарегистрировать значение CGPoint - это использовать класс NSValue, поскольку он даст вам все соответствующие значения, отформатированные для консоли. Это сделано так:

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

Вы также можете использовать методы +valueWithCGRect и +valueWithCGSize для NSValue, когда вы пытаетесь регистрировать, скажем, свойства frame (CGRect) или size (CGSize) UIView.

9
Nathan de Vries

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

1
Nicki

point.x - это число с плавающей запятой поэтому вы должны написать код так:

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

использовать:

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

Вы также можете использовать NSString для получения следующей информации:

NSStringFromCGPoint
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets

0
Aks