2009-09-25 3 views
78

У меня есть CGPoint называемой точка, которая в настоящее время назначенной нотку:NSLog с CGPoint данные

UITouch *touch = [touches anyObject]; 

CGPoint point = [touch locationInView:self]; 

Я хочу, чтобы получить значение х координат в мой журнал консоли:

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

Когда я использую это, бревенчатый выход для этого:

х: (нуль)

Я проверил, что точка не является нулевым, когда Тхи s вызывается с помощью отладчика и вахты переменных.

Любая помощь приветствуется,

Благодаря // :)

ответ

239

На самом деле, реальный простой способ войти в CGPoint является:

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

Рабочий стол Какао эквивалент NSStringFromPoint().

+0

Это даже лучше. Первый ответ - самый простой и легкий вес. Но это дает мне как x, так и y из CGPoint в одном наборе.Nice :) Отличный инструмент :) – Spanky

+0

Поскольку StackOverflow счел нужным повторно включить этот вопрос в мою RSS-ленту, я могу также сутенерное мое общее решение: http://jens.ayton.se/blag/almost-elegant-cave-man- отладка/которая позволяет вам перейти в JA_DUMP (point); 'и получить« point = {43, 96} », не беспокоясь о кодах формата. –

+0

Как использовать вашу библиотеку lib, поскольку она компилируется на I386, но не на ARM? Я имею в виду, как я могу работать над проектами iOS, используя это? –

25

point.x это число с плавающей точкой, так что вы должны использовать:

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

Самый простой способ войти значение CGPoint заключается в использовании класса NSValue, так как он даст вам все соответствующие значения, отлично отформатированные для консоли. Это делается так:

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

Вы также можете использовать +valueWithCGRect и +valueWithCGSize методы NSValue, когда вы пытаетесь войти, скажем, frame (CGRect) или size (CGSize) свойства UIView.

0

point.x является число с плавающей точкой так что вы должны кода, как это:

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

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

+0

Если u хочет значение String, значит, вы просто используете это! – 2010-09-07 06:38:43

+4

Вы делаете ненужную строку формата в строке формата. Подходы Филиппа и Арумана намного проще, и они достигают тех же результатов. –

0

использование:

NSLog (@ "% @", NSStringFromCGPoint (точка));

Вы также можете использовать NSString для следующей информации:

NSStringFromCGPoint
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets

Смежные вопросы