2009-09-25 9 views
78

私はタッチ割り当てられているするCGPointと呼ばれるポイントがあります。のNSLogするCGPointとデータ

UITouch *touch = [touches anyObject]; 

CGPoint point = [touch locationInView:self]; 

は、私は私のコンソールログにX座標値を取得したいの:

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

私が使用この、ある本のためにログ出力:

X:(ヌル)

を私がするときTHIポイントがnullでないことを確認しましたsは、デバッガと変数watchを使用して呼び出されます。あなたが使用する必要がありますので

すべてのヘルプ感謝、

おかげ// :)

答えて

239

は実際に、CGPointをログに記録する本当の最も簡単な方法は次のとおりです。

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

デスクトップココア同等のNSStringFromPoint()です。

+0

。最初の答えは、最も簡単で軽量なウェイトです。しかし、これはCGPointからxとyの両方を1つのセットに入れてくれます。ニース:)素晴らしいツール:) – Spanky

+0

StackOverflowは私のRSSフィードでこの質問を再現するのに適していたので、私も一般的な解決法を紹介します:http://jens.ayton.se/blag/almost-elegant-cave-man-あなたが 'JA_DUMP(point);'に行き、フォーマットコードを気にすることなく 'point = {43、96} 'を記録できるようにするdebugging/ –

+0

I386ではコンパイルされているが、ARMではコンパイルされていないので、どのようにlibを使用しますか?つまり、iOSプロジェクトを使ってどのように作業できますか? –

25

point.xは、浮動小数点数である:

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

CGPoint値を記録する最も簡単な方法NSValueクラスを使用することです。これは、コンソール用に適切にフォーマットされたすべての関連値を提供するためです。それはそうのように行われています:あなたはまた、あなたが言う、ログインしようとしているときに、NSValue+valueWithCGRect+valueWithCGSizeメソッドを使用UIViewframeCGRect)またはsizeCGSize)プロパティができ

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

0

point.xので、あなたがこのようなコード必要があります浮動小数点数 です:

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

....またはNSLog(@ "%f"、point.x) ' –

+0

あなたは文字列の値をしたい場合は、単にこれを使用することを意味する! –

+4

書式文字列内で不要な書式文字列を実行しています。フィリップスとアローマンのアプローチはずっと簡単で、まったく同じ結果が得られます。 –

1

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

0

使用:

のNSLog( "%の@" @、NSStringFromCGPoint(ポイント) );

また、次の情報のためのNSStringを使用することができます。これはさらに良いです

NSStringFromCGPoint
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets