Как создать действие сообщения журнала точки останова в xcode? - PullRequest
15 голосов
/ 09 ноября 2011

Сегодня смотрели видео WWDC о новых функциях в xCode 4. Они упомянули, что было бы неплохо использовать действия сообщений журнала на точках останова наряду с «автоматическим продолжением после действий оценки», позволяющим выводить значение переменной, например, вместоиспользуя NSLogs все время.

Допустим, у меня есть что-то вроде этого:

NSLog(@"URL is : %@", userDocumentsURL);

Как бы я написал действие сообщения журнала, чтобы отобразить значение userDocumentsURL?Это действительно хорошая идея использовать вышеуказанный метод вместо NSLog?

Ответы [ 3 ]

26 голосов
/ 17 ноября 2011

Создать действие «Журнал сообщений» для точки останова.Для сообщения журнала включите что-то вроде:

URL is @(char*) [[userDocumentsURL description] UTF8String]@

В качестве альтернативы вы можете создать действие «Команда отладчика» точки останова, подобное:

po [NSString stringWithFormat:@"URL is: %@", userDocumentsURL]

Я предпочитаю использовать действия точки останова для ведения журнала, так как этовозможно, легче удалить кучу точек останова, чем удалить NSLogs.Возможным недостатком использования точек останова таким способом является то, что они значительно медленнее (во время отладки), чем прямой NSLog.

20 голосов
/ 20 июня 2013

Вот аналогичное решение с использованием NSLog, которое может содержать меньше символов, чем другие решения.

debugger command using NSlog

Однако, если вы не добавите void следующим образом:

po (void)NSLog(@"the person name is: %@", p.name)

вы получите раздражающую ноль, распечатанную с вашим журналом. например:

(lldb) po NSLog(@"foo")
 nil
2013-06-19 14:42:59.025 TheMove[95864:c07] foo

(lldb) po (void)NSLog(@"foo")
2013-06-19 14:43:10.758 TheMove[95864:c07] foo

Если вы можете жить с нулем (я могу), то быстрее набрать текст и легче запомнить только po

0 голосов
/ 22 сентября 2012

Я заметил, что функция редактирования точек останова, хотя и полезна и, возможно, современна, не поддерживает управление исходным кодом, поэтому она не масштабируется для команды разработчиков. По этой причине я бы сказал, что при работе в команде под управлением исходного кода придерживайтесь ведения журнала на основе кода, такого как NSLog.

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