iphone cocoa cocoa-touch core-graphics nslog

iphone - NSLog con datos de CGPoint



cocoa cocoa-touch (6)

En realidad, la manera más fácil de registrar un CGPoint es:

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

El equivalente de escritorio de Cocoa es NSStringFromPoint() .

Tengo un punto llamado CGPoint al que se le está asignando un toque:

UITouch *touch = [touches anyObject]; CGPoint point = [touch locationInView:self];

Quiero obtener el valor de la coordenada x en el registro de mi consola:

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

Cuando uso esto, la salida de registro para esto es:

x: (nulo)

He verificado que el punto no es nulo cuando se lo llama usando el depurador y el reloj variable.

Cualquier ayuda apreciada,

Gracias // :)


La forma más sencilla de registrar un valor CGPoint es usar la clase NSValue , ya que le dará todos los valores relevantes formateados muy bien para la consola. Se hace así:

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

También puede usar los +valueWithCGRect y +valueWithCGSize de NSValue cuando intenta registrar, por ejemplo, las propiedades de frame ( CGRect ) o size ( CGSize ) de un UIView .


point.x es un número de punto flotante, por lo que debe usar:

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


utilizar :

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

También puede usar NSString para la siguiente información:

NSStringFromCGPoint
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets


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


point.x es un número de punto flotante, por lo que debe codificar de esta manera:

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