93 votes

NSLog avec des données CGPoint

J'ai un CGPoint appelé point auquel on attribue une touche :

UITouch *touch = [touches anyObject];

CGPoint point = [touch locationInView:self];

Je veux obtenir la valeur de la coordonnée x dans le journal de ma console :

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

Lorsque je l'utilise, la sortie du journal est la suivante :

x : (null)

J'ai vérifié que le point n'est pas nul lorsqu'il est appelé en utilisant le débogueur et la surveillance des variables.

Toute aide est appréciée,

Merci // :)

261voto

Jens Ayton Points 11566

En fait, le moyen le plus simple d'enregistrer une CGPoint est :

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

L'équivalent Cocoa pour le bureau est NSStringFromPoint() .

24voto

Philippe Leybaert Points 62715

Point.x est un nombre à virgule flottante, vous devez donc utiliser :

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

9voto

Nathan de Vries Points 10895

La manière la plus simple d'enregistrer un CGPoint est d'utiliser le NSValue puisqu'elle vous donnera toutes les valeurs pertinentes, joliment formatées pour la console. C'est fait comme ça :

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

Vous pouvez également utiliser le +valueWithCGRect y +valueWithCGSize méthodes de NSValue quand vous essayez d'enregistrer, disons, la frame ( CGRect ) ou size ( CGSize ) des propriétés d'un UIView .

2voto

Nicki Points 921

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

0voto

point.x est un nombre à virgule flottante donc vous devriez coder comme ceci :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X