Есть ли способ очистить вывод NSLog?

Я искал в Google последние пару часов, чтобы узнать, есть ли способ очистить вывод NSLog с помощью кода или нет?

Как у нас clrscr() в c. Итак, если мы пытаемся напечатать что-то, на чем мы хотим сосредоточиться больше всего, и там много распечатанных журналов, мы можем поместить этот код туда и сохранить журнал желаний вверху для облегчения поиска. Это можно сделать, поставив точку останова в строке NSLog и щелкнув clear console. но вопрос в том, есть ли способ добиться этого программно?

Я нашел несколько вопросов о переполнении стека, но меня не удовлетворил ответ вроде this говорит, что я могу отключить журнал для режима выпуска и т. д.

Или я могу использовать DLog, ALog или ULog в качестве требования, но мой вопрос в другом ..

Кто-нибудь может мне в этом помочь?

Заранее спасибо :)


person Kapil Choubisa    schedule 22.05.2012    source источник


Ответы (1)


Для имитации вы можете использовать условную точку останова. Определите в своем коде такую ​​функцию:

int clear_console()
{
    NSLog(@"\n\n\n\n\n\n\n\n");
}

Затем, если вы хотите очистить консоль, просто добавьте точку останова перед NSLog с этим условием:

  • Условие: 1> 0
  • Действие: команда отладчика expr (int) clear_console()
  • Параметры: Продолжить автоматически после оценки. Установите этот флажок, чтобы пропустить паузу.

введите описание изображения здесь

Протестировано с Xcode 4.3.2 и lldb.

Предыдущий ответ:

AFAIK, нет, нет.

На всякий случай, если вы еще этого не делаете, вы можете создать собственные макросы для форматирования вывода, чтобы выделить то, что вы хотите.

Определите макросы следующим образом:

#define CLEAR(...)          NSLog(@"\n\n\n\n\n\n") /* enough \n to "clear" the console */
#define WTF(...)            CLEAR();NSLog(@"!!!!!!!!!!!!!!");NSLog(__VA_ARGS__)
#define TRACE(__message__)  NSLog(@">>>>>>>>>>>>>>> %@ <<<<<<<<<<<<<<<<<<<", __message__)

Потом:

WTF(@"This should't be here object: %@", theObject);
...
TRACE(@"Start Encoding");
...

Это не то, что вам нужно, но это в значительной степени решает проблему. В итоге вы получите собственный набор макросов с настраиваемыми префиксами, которые легко сканировать в выводе консоли.

person djromero    schedule 22.05.2012
comment
@madmw Как вы упомянули, это не то, что я ищу, но после долгих поисков я должен признать, что это лучший способ, который вы показали. На самом деле спасибо за отличный ответ. - person Kapil Choubisa; 23.05.2012