Просмотр возвращаемого значения селектора при отладке в Xcode - PullRequest
2 голосов
/ 21 октября 2009

Я бегу по руководству по разработке для iPhone, и у меня есть странная ошибка, которую я исследую с помощью отладчика. У меня есть следующий код, который проверяет, находится ли объект в границах. Я пытаюсь увидеть значение ball.center.x в определенной точке, но поскольку center - это селектор метода доступа к свойству, я не получаю значение, когда наводю курсор на него в отладчике Xcode.

if (ball.center.x > self.view.bounds.size.width || ball.center.x < 0) {
    ballVelocity.x = -ballVelocity.x;
}

Есть ли способ сделать это? Я думаю, что я просто что-то упустил. Я полагаю, я мог бы обновить код, чтобы присвоить значение переменной, которую я мог бы затем просмотреть в отладчике, но это похоже на небрежное решение общей проблемы.

Спасибо!

Ответы [ 4 ]

2 голосов
/ 21 октября 2009

и еще есть почтенный, быстрый и грязный:

if (ball.center.x > self.view.bounds.size.width || ball.center.x < 0) {
    NSLog(@"ball center: %d",ball.center.x);
    ballVelocity.x = -ballVelocity.x;
}
2 голосов
/ 29 марта 2010

Попробуйте команду gdb :

p (CGPoint)[ball center] 

Я использую этот трюк с UIView.frame, он работает.

2 голосов
/ 21 октября 2009

Я предполагаю, что центр - это CGPoint.

В дополнение к отладчику графического интерфейса Xcode, при отладке также доступна подсказка gdb. Попробуйте это:

p* ball

или

p ball.center
0 голосов
/ 03 мая 2010

Есть даже более простой способ сделать это, чем использовать консоль GDB. В главном меню выберите:

Run -> Variables View -> View in expression window

И в текстовом поле окна выражения введите:

(CGPoint)[ball center]

Основная проблема с окнами выражений, отображающими сообщение об ошибке «вне области видимости», заключается в том, что он почти никогда не знает тип возвращаемого значения функции (или метода), поэтому он не знает, как представить возвращенную переменную. Apple дает нам подсказку, что делать в таких случаях здесь в разделе «Советы по использованию окна выражений».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...