2009-09-25 11 views
78

Ben bir dokunuş atanmış olan bir CGPoint denilen noktası:NSLog CGPoint veri

UITouch *touch = [touches anyObject]; 

CGPoint point = [touch locationInView:self]; 

benim konsol günlüğüne x koordinatı değeri elde etmek istiyorum:

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

kullandığım Bunun için bu, log çıkışı:

x

: Ben bu noktaya doğruladıktan (null)

zaman thi boş değil Hata ayıklayıcı ve değişken saati kullanarak çağrılır.

takdir Herhangi bir yardım,

Teşekkür // :)

cevap

239

, bir CGPoint oturum açmak için en kolay gerçek yoludur:

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

masaüstü Kakao eşdeğer NSStringFromPoint() olduğunu.

+0

. İlk cevap en kolay ve en hafif ağırlıktır. Ama bu beni hem bir kümede hem de CGPoint'ten x ve y alır.Güzel :) Harika bir araç :) – Spanky

+0

StackOverflow RSS beslememde bu soruyu yeniden yayınlamaya başladığından beri, genel çözümümün pezevenkini de yapabilirim: http://jens.ayton.se/blag/almost-elegant-cave-man- hata ayıklama/hangi tür JA_DUMP (nokta) '' gidin ve biçimlendirme kodları hakkında endişelenmenize gerek kalmadan kaydedilen nokta ({43, 96}) olsun. –

+0

I386'da derlediğinden, ancak ARM üzerinde olmadığından lib'inizi nasıl kullanırım? Bunu kullanarak iOS projelerinde nasıl çalışabilirim? –

25

point.x kullanmanız gereken böylece kayan nokta sayısı, geçerli:

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

basit yolu CGPoint değeri kaydetmek amacıyla Konsol için güzelce biçimlendirilmiş tüm ilgili değerleri vereceğinden, NSValue sınıfını kullanmaktır. O şöyle yapılır: Ayrıca diyelim ki, log çalışırken, NSValue ait +valueWithCGRect ve +valueWithCGSize yöntemleri kullanmak bir UIView ait frame (CGRect) ya da size (CGSize) özelliklerini olabilir

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

. Aslında

0

point.x yüzden böyle kod gereken bir kayan nokta sayısı geçerli:

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

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

+0

Dize değeri istiyorsanız, sadece bunu kullanın demektir! –

+4

Biçim dizgisinde gereksiz bir biçim dizesi yapıyorsunuz. Philippe ve Ahruman'ın yaklaşımları çok daha basit ve aynı sonuçları elde ediyorlar. –

1

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

0

kullanım:

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

Ayrıca aşağıdaki bilgi için NSString kullanabilirsiniz: Bu daha da iyi

NSStringFromCGPoint
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets