0

現在、練習用にデモ描画および画像編集アプリを作成しています。いくつかのカスタム ビューを作成し、draw rect を使用して図面を作成しました。ポイントと他のオブジェクトのコンテンツを頻繁にチェックするために NSLogs を書き続けていますが、何度も必要になるため、それらの多くを削除することはありません。しかし、ログが処理時間を浪費し、描画プロセスの一部を遅延させていることがわかります。

私の質問は、アプリの起動中にすべての NSlogs を一度に削除し、テスト中にそれらを再度追加する方法が xcode にあるということです。

4

3 に答える 3

1

このようなことをしてください...

Command++をクリックし ShiftますF

選択するReplace

ここに画像の説明を入力してください

そしてNSLog//NSLog

あまり良い解決策ではありませんが、それでも機能します!:)

于 2012-10-12T07:36:47.607 に答える
0

こんにちは私が知った1つの方法は、xcodeの検索と置換オプションを使用することです。
すなわち。たとえば、プロジェクト全体で書き込んだすべてのNSLogを削除する必要があるとします。プロジェクト全体でNSLogキーワード
を検索し(cmd + shift + F)//NSLogに置き換えます。これにより、作成したすべてのNSLogがコメントアウトされます。 ログのコメントを解除する必要がある場合は、逆の操作を行ってください。 つまり、プロジェクト全体で// NSLogキーワードを検索し(cmd + shift + F)、それをNSLogに置き換えます。これはコメントを外します

書き込んだすべてのNSLogを取り出して、コンソールに再度印刷します。(cmd + shift + F)の代わりに(cmd + F)だけを使用して、特定のファイルに対してこれを行うこともできます。ただし、xcodeに実際にこれを行う適切な方法があるかどうかはわかりません。

于 2012-10-12T07:37:27.890 に答える
0

次のようなマクロを使用して、カスタム NSLog を定義することにより、それを行うもう 1 つの良い方法を見つけました。

そして、プロジェクト内のすべてのファイルの共通ヘッダーを保持するapp-prefix.hファイルで、「MYLog」マクロを次のように定義します。

#ifdef デバッグ

#define MYLog(f, ...) NSLog( @"<%@:(%d)> %@",[[NSString stringWithUTF8String: _FILE _] lastPathComponent], _LINE _, [NSString stringWithFormat:(f), # # _VA_ARGS _] )

#そうしないと

#MYLog(f, ...) を定義

#endif

したがって、テストが必要な場合はプロジェクトをデバッグ モードにし、ログなしで実行する必要がある場合はプロジェクトをリリース モードにします。シンプル.. ps FILE AND LINE は、ログが存在するファイル名と行番号を出力するためにプリプロセッサで実行されるマクロです。やってみて..

于 2012-10-20T03:40:24.800 に答える