wake-up-neo.com

NSLog mit CGPoint-Daten

Ich habe einen CGPoint-Aufrufpunkt, dem eine Berührung zugewiesen wird:

UITouch *touch = [touches anyObject];

CGPoint point = [touch locationInView:self];

Ich möchte den x-Koordinatenwert in mein Konsolenprotokoll aufnehmen:

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

Wenn ich dies verwende, lautet die Protokollausgabe hierfür:

x: (null)

Ich habe überprüft, dass der Punkt nicht null ist, wenn dies mit dem Debugger und der Variablenüberwachung aufgerufen wird.

Jede hilfe geschätzt,

Vielen Dank // :)

88
Spanky

Tatsächlich ist der einfachste Weg, einen CGPoint zu protokollieren, Folgendes:

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

Das Desktop-Cocoa-Äquivalent lautet NSStringFromPoint().

249
Jens Ayton

point.x ist eine Gleitkommazahl, daher sollten Sie Folgendes verwenden:

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

Die einfachste Möglichkeit, einen CGPoint-Wert zu protokollieren, ist die Verwendung der NSValue-Klasse, da Sie damit alle relevanten Werte erhalten, die für die Konsole formatiert sind. Es ist so gemacht:

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

Sie können auch die Methoden +valueWithCGRect und +valueWithCGSize von NSValue verwenden, wenn Sie versuchen, die frame (CGRect) - oder size (CGSize) -Eigenschaft einer UIView zu protokollieren.

9
Nathan de Vries

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

1
Nicki

point.x ist eine Gleitkommazahl Sie sollten also wie folgt codieren:

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

benutzen :

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

Sie können NSString auch für folgende Informationen verwenden:

NSStringFromCGPoint
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets

0
Aks