Mam punkt CGPoint, któremu przypisano dotyk:
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self];
Chcę pobrać wartość współrzędnej x do mojego dziennika konsoli:
NSLog(@"x: %s", point.x);
Kiedy używam tego, dane wyjściowe dziennika to:
x: (null)
Sprawdziłem, że punkt nie jest zerowy, gdy jest wywoływany przy użyciu debugera i obserwatora zmiennych.
Każda pomoc doceniona,
Dzięki // :)
iphone
cocoa
cocoa-touch
core-graphics
nslog
Spanky
źródło
źródło
JA_DUMP(point);
uzyskać „point = { 43, 96} ”bez martwienia się o kody formatu.point.x to liczba zmiennoprzecinkowa, więc powinieneś użyć:
NSLog(@"x: %f", point.x);
źródło
Najprostszym sposobem zarejestrowania
CGPoint
wartości jest użycieNSValue
klasy, ponieważ dostarczy ona wszystkie odpowiednie wartości dobrze sformatowane dla konsoli. Zrobiono to tak:NSLog(@"myPoint = %@", [NSValue valueWithCGPoint:myPoint]);
Możesz także użyć metod
+valueWithCGRect
i+valueWithCGSize
,NSValue
gdy próbujesz zarejestrować, powiedzmy, właściwościframe
(CGRect
) lubsize
(CGSize
)UIView
.źródło
NSLog(@"point x,y: %f,%f", point.x, point.y);
źródło
point.x
jest liczbą zmiennoprzecinkową, więc powinieneś kodować w ten sposób:NSLog(@"%@",[NSString StringWithFormat:@"%f",point.x]);
źródło
posługiwać się :
Możesz również użyć NSString do następujących informacji:
źródło