5

私の記憶には、NSLogリリースされたときに動作しないようにすることができるいくつかのコードがあります。

コードから自分を削除したくありませんNSLog。デバッグモードで大いに役立ちます。

そのため、コードにそれらを残し、リリース時にアプリケーションの速度を低下させない方法を見つけたいと思います。

助けてくれてありがとう~~

4

2 に答える 2

5

リリース内のすべての呼び出しを削除する一般的な方法NSLog(…)は、条件付きプリプロセッサマクロの間にあり、何にもコンパイルされないマクロを作成することです。次のようになります。

#ifdef RELEASE
# define NSLog(...) //remove loggin in production
#endif

このコードを、プレフィックスヘッダー()の'dのように.h、他のすべてのファイルに含まれるファイルに配置します。Defines.h#include.pch

RELEASEターゲットの[ビルド設定]タブでリリース構成に対して定義されたプリプロセッサマクロである必要があります。

AppleLLVMコンパイラ4.0-前処理

関連する質問

于 2012-07-24T08:51:55.370 に答える
1

NSLogをカスタムマクロに置き換える必要があります。

たとえば

#ifdef DEBUG
#    define DLog(...) NSLog(__VA_ARGS__)
#else
#    define DLog(...) /* */
#endif
#define ALog(...) NSLog(__VA_ARGS__)

プレフィックスpchファイル内。

デバッグフラグの状態に関係なく常にログ出力が必要な場合はALogを使用し、デバッグモードでのみログを出力する場合はDLogを使用します。

ソース

于 2012-07-24T08:48:11.520 に答える