web-dev-qa-db-fra.com

NSLog avec des données CGPoint

J'ai un point CGPoint appelé auquel une touche est attribuée:

UITouch *touch = [touches anyObject];

CGPoint point = [touch locationInView:self];

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

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

Lorsque j'utilise ceci, la sortie du journal pour ceci est:

x: (null)

J'ai vérifié que le point n'est pas nul lorsqu'il est appelé à l'aide du débogueur et de la surveillance des variables.

Toute aide appréciée,

Merci // :)

88
Spanky

En fait, le moyen le plus simple de consigner une CGPoint est:

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

L'équivalent de bureau Cocoa est NSStringFromPoint().

249
Jens Ayton

point.x est un nombre à virgule flottante, vous devriez donc utiliser:

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

Le moyen le plus simple de consigner une valeur CGPoint consiste à utiliser la classe NSValue, car elle vous donnera toutes les valeurs pertinentes correctement formatées pour la console. C'est fait comme ça:

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

Vous pouvez également utiliser les méthodes +valueWithCGRect et +valueWithCGSize de NSValue lorsque vous essayez de vous connecter, par exemple aux propriétés frame (CGRect) ou size (CGSize) d'un UIView.

9
Nathan de Vries

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

1
Nicki

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

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

utilisation :

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

Vous pouvez également utiliser NSString pour les informations suivantes:

NSStringFromCGPoint
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets

0
Aks