お?いけるくさい?

iPhoneアプリエンジニアのたまごです。いっちょまえエンジニア目指してちいさな発見や学んだことを覚え書きしていきます!Objective-C/iOS/開発

NSLogを簡単に消しましょ!(マクロ定義)

.pch ファイルに以下のマクロを定義します。

 

#if DEBUG

#if !defined(NSLog)

#define NSLog( m, args... ) NSLog( m, ##args )

#endif

#else

#if !defined(NSLog)

#define NSLog( m, args... )

#endif

#endif

 

 

 

ログを出したくないときは

Build Settings

 > PROJECT

  >  Apple LLVM compiler 4.2 -Preprocessing

   > Preprocessor Macros

の値を、DEBUG=0 にします。

f:id:simamikiii:20130611164706p:plain

これでリリース版のものはデフォルトで0にしておくと

ログを消せて安心\(^o^)/

 

 ***

 

上のやつはちなみに

#ifdef ではなくて

#ifを使っているけど、

ifdef文は開発時に使うとかなり便利!

「テスト中だけ仮でこの値入れておきたいなー」とか

「テスト中だけこのメソッドよびたいなー」とか

そういうときに

 

#ifdef DEBUG(=デバッグ版だったら)

 ほにゃらら

#endif

 

と書くと、DEBUG版だけそこを通ってくれます。

逆に

本番では絶対こっち通ってほしいなーとかっていうときは

 

#ifndef DEBUG(=デバッグ版じゃなければ)

 ほにゃらら

#endif

 

とかって使ったりします。

でも基本はリリース版を前提に、

#ifdef DEBUG で使うことの方が多い。