Как создать действие сообщения журнала точки прерывания в xcode?
Сегодня мы смотрели видео WWDC о новых функциях в xCode 4. Они упоминали, что неплохо использовать действия с сообщениями журнала в точках останова вместе с "автоматически продолжать после оценочных действий", чтобы вывести значение переменной, например, вместо используя NSLogs все время.
скажет, что у меня есть что-то вроде этого:
NSLog(@"URL is : %@", userDocumentsURL);
Как мне написать действие сообщения журнала, чтобы отобразить значение userDocumentsURL? Это действительно хорошая идея использовать указанный выше метод вместо NSLog?
Ответы
Ответ 1
Создайте действие "Сообщение журнала точки останова". Для сообщения журнала есть что-то вроде:
URL is @(char*) [[userDocumentsURL description] UTF8String]@
В качестве альтернативы вы можете создать действие команды "Отладка" для точки останова, аналогичное:
po [NSString stringWithFormat:@"URL is: %@", userDocumentsURL]
Я предпочитаю использовать действия точки останова для ведения журнала, поскольку, возможно, проще очистить кучу точек останова, чем удалить NSLogs. Возможным недостатком использования контрольных точек таким образом является то, что они значительно медленнее (во время отладки), чем прямой NSLog.
Ответ 2
Вот аналогичное решение, использующее 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
Если вы можете жить с nil (я могу), это быстрее ввести и легче запомнить только po
Ответ 3
Я замечаю, что функция контрольных точек редактирования, хотя и полезна и, возможно, современна, не фиксирует контроль источника, поэтому не масштабируется для команды разработчиков. По этой причине я бы сказал, что, работая над командой под контролем источника, придерживайтесь протокольного ведения журнала, такого как NSLog.