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 // :)
Tatsächlich ist der einfachste Weg, einen CGPoint
zu protokollieren, Folgendes:
NSLog(@"%@", NSStringFromCGPoint(point));
Das Desktop-Cocoa-Äquivalent lautet NSStringFromPoint()
.
point.x ist eine Gleitkommazahl, daher sollten Sie Folgendes verwenden:
NSLog(@"x: %f", point.x);
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.
NSLog(@"point x,y: %f,%f", point.x, point.y);
point.x
ist eine Gleitkommazahl Sie sollten also wie folgt codieren:
NSLog(@"%@",[NSString StringWithFormat:@"%f",point.x]);
benutzen :
NSLog (@ "% @", NSStringFromCGPoint (Punkt));
Sie können NSString auch für folgende Informationen verwenden:
NSStringFromCGPoint
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets