11

コードを使用してNSLog出力をクリアする方法があるかどうかを見つけるために、ここ数時間グーグルしてきました。

clrscr()cのように。したがって、最も焦点を合わせたいものを印刷しようとしていて、そこにログ印刷がたくさんある場合は、そのコードをそこに配置して、簡単に検索できるように目的のログを一番上に保持できます。これは、私の行にブレークポイントを設定し、NSLogをクリックすることで実行できますclear console。しかし、質問は、これをプログラムで達成する方法はありますか?

スタックオーバーフローに関する質問はほとんど見つかりませんでしたが、リリースモードなどのログを無効にできると言っているよう答えには満足できません。

または、要件としてDLog、ALog、またはULogを使用できますが、質問は異なります。

誰かがこれで私を助けることができますか?

前もって感謝します :)

4

1 に答える 1

9

条件付きブレークポイントを使用してシミュレートできます。コードで次のような関数を定義します。

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

次に、コンソールをクリアしたい場合は、次の条件で NSLog の前にブレークポイントを追加するだけです:

  • 条件: 1 > 0
  • アクション: デバッガー コマンドexpr (int) clear_console()
  • オプション:評価後に自動的に続行チェックを入れると一時停止をスキップします。

ここに画像の説明を入力

Xcode 4.3.2 および lldb でテスト済み。

以前の回答:

私の知る限り、いいえ、ありません。

まだ行っていない場合に備えて、カスタム マクロを作成して出力をフォーマットし、必要なものを強調表示することができます。

次のようにマクロを定義します。

#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");
...

それはあなたが望むものではありませんが、問題はほとんど解決します。コンソール出力で簡単にスキャンできるカスタム プレフィックスを使用して、独自のマクロ セットを作成できます。

于 2012-05-22T12:31:24.563 に答える