как правильно отлаживать в xCode и Objective-C - PullRequest
0 голосов
/ 27 октября 2010

Мне было интересно, существует ли эффективный способ отладки проблем в xcode при кодировании в Objective-C.Я постоянно создаю веб-страницы и кодирую их в jquery и javascript, где вы можете устанавливать различные поля предупреждений в разных местах вашего кода, чтобы определить, правильно ли ваш сценарий выполняет секции.Можете ли вы сделать что-то подобное в xcode, чтобы убедиться, что ваш скрипт правильно выполняет методы и создает переменные?

Спасибо

Ответы [ 3 ]

2 голосов
/ 27 октября 2010

Используйте отладчик - вот для чего он нужен! Установите точки останова, щелкнув серым цветом рядом со строкой кода, которую вы хотите разбить Когда эта строка кода будет выполнена, отладчик включится и выделит текущее место выполнения. Вы можете навести курсор на переменные в IDE, чтобы проверить их значения, просмотреть текущий стек вызовов (чтобы увидеть, откуда был вызван этот код) и получить список локальных переменных, чтобы помочь отследить состояние программы. Здесь вы также можете изменять свойства переменных, что часто упрощает отладку.

Выполнение кода строка за строкой с помощью «Stepping Over» (cmd + shift + o), который выполняет текущую строку, «Stepping Into» (cmd_shift + i), которая входит в текущую строку кода (если это функция) ) или «Выход» для возврата обратно в стек вызовов.

Если вы хотите придерживаться отладки в стиле «старой школы» printf, перейдите к выводу NSLog ing на консоль.

NSLog(@"this text appears");

выводит на консоль следующее:

этот текст появляется

Чтобы напечатать некоторые основные значения переменных:

CGFloat pi = 3.14;
NSString *aFloatString = [NSString stringWithFormat:@"%.2f", pi];
NSLog(@"pi is equal to: %@", aFloatString);

Печать:

равно: 3,14

Стандартные форматеры c могут использоваться в NSLog, т.е. %d для целых чисел, %.2f для чисел с плавающей запятой до 2 десятичных знаков и т. Д. Используйте %@ для NSString* с.

Помните, что NSLog останется в рабочем коде, если только вы не #IFDEF выйдете из выпусков сборки (или чего-то подобного), поэтому, если вы не хотите, чтобы снижение производительности или неловкие журналы консоли сопровождали приложение, вы будете хочу удалить их.

Я был известен тем, что мусорил функции, которые выводят в консоль следующее - и это не хорошо:

OUTPUT:
Number of vertices is: 1200
<Requested reduction>
Can I kick it?
....
....
YES. I. CAN!
Number of vertices is: 800

Можно было бы удалить такие вещи: |

0 голосов
/ 27 октября 2010

Вы можете попробовать записать на консоль.

NSLog(@"Some status message here");
NSLog(@"The value of myObject is:%@", myObject);

Чтобы просмотреть выходные данные вашего приложения, во время работы с Xcode нажмите Run-> Console, и вы увидите все выходные данные из вашего приложения.

0 голосов
/ 27 октября 2010

да, отладчик может делать все, что вы хотите (просто установите несколько точек останова - щелкните правой кнопкой мыши там, где вы хотите - затем выполните сборку и отладку)

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