2009-09-25 8 views
78

Ich habe einen CGPoint genannt Punkt, der einen Hauch zugewiesen wird:NSLog mit CGPoint Daten

UITouch *touch = [touches anyObject]; 

CGPoint point = [touch locationInView:self]; 

Ich mag den x-Koordinatenwert in mein Konsolenprotokoll erhalten:

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

Wenn ich dazu Protokollausgabe hierfür ist:

x: (null)

ich diesen Punkt überprüft haben, nicht null ist, wenn thi s wird mit dem Debugger und der Variablenüberwachung aufgerufen.

Alle geschätzt Hilfe

Dank // :)

Antwort

239

Eigentlich ist die wirkliche einfachste Weg, eine CGPoint loggt ist:

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

Der Desktop Cocoa entspricht NSStringFromPoint().

+0

Dies ist noch besser. Die erste Antwort ist der einfachste und leichteste Weg. Aber das bringt mir sowohl x als auch y vom CGPoint in einem Set.Nice :) Tolles Tool :) – Spanky

+0

Da StackOverflow sah, diese Frage in meinem RSS-Feed wieder einzuführen, kann ich auch meine allgemeine Lösung pimpen: http://jens.ayton.se/blag/almost-elegant-cave-man- debuggen/das erlaubt dir 'JA_DUMP (point);' zu nehmen und "point = {43, 96}" einzuloggen, ohne dich um Formatcodes kümmern zu müssen. –

+0

Wie benutze ich Ihre lib, da sie auf I386 kompiliert, aber nicht auf ARM? Ich meine, wie kann ich an iOS-Projekten arbeiten, die es verwenden? –

25

point.x ist eine Gleitkommazahl, so dass Sie verwenden sollten:

einen CGPoint Wert log
NSLog(@"x: %f", point.x); 
9

Der einfachste Weg, ist es, die NSValue Klasse zu verwenden, da es Ihnen alle relevanten Werte gibt, die schön für die Konsole formatiert sind. Es ist wie so getan:

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

Sie auch die +valueWithCGRect und +valueWithCGSize Methoden der NSValue verwenden können, wenn Sie sich anmelden bist versuchen, sagen wir, die frame (CGRect) oder size (CGSize) Eigenschaften eines UIView.

0

point.x ist eine Gleitkommazahl so sollten Sie wie folgt Code:

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

.... oder 'NSLog (@ "% f", point.x)' –

+0

Wenn du String-Wert haben willst, benutze das einfach !! –

+4

Sie machen eine unnötige Formatzeichenfolge in einer Formatzeichenfolge. Philippe und Ahruman sind viel einfacher und erzielen genau die gleichen Ergebnisse. –

1

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

0

Verwendung:

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

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

NSStringFromCGPoint
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets