2014年1月17日金曜日

[iOS][Objective-C]NSLogをマクロで使う


どうも。

NSLogでログ出力。

NSLogでの出力内容は、
リリース後のアプリからでも、
Organizerとかから、
実は見れる((((;゚Д゚)))))))

ということで、
<AppName>-prefix.pchに、
下記の様なマクロを記述しておき、
リリースビルド時には自動的に無効化されるようにしておく。

#ifdef DEBUG
    #define LOG(...) NSLog(__VA_ARGS__)
    #define LOG_PRINTF(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
    #define LOG_METHOD NSLog(@"%s", __func__)
    #define LOG_METHOD_AND_ABORT LOG_METHOD; abort()
#else
    #define LOG(...)
    #define LOG_PRINTF(FORMAT, ...)
    #define LOG_METHOD
    #define LOG_METHOD_AND_ABORT
#endif

#ifdef DEBUG
    #define LOG_POINT(p) NSLog(@"%f, %f", p.x, p.y)
    #define LOG_SIZE(p) NSLog(@"%f, %f", p.width, p.height)
    #define LOG_RECT(p) NSLog(@"%f, %f - %f, %f", p.origin.x, p.origin.y, p.size.width, p.size.height)
#else
    #define LOG_POINT(p)
    #define LOG_SIZE(p)
    #define LOG_RECT(p)
#endif


上記は一例で、
ググれば他にも色んなマクロが出てくるだろうし、
自分の好みにあった形で書いてもいいし。
個人的には上記で充足するかな。

自分一人で、
最初から最後までやるときはいいんだけど…。

複数人での開発だったり、
ある程度開発が進んでる状態で後発でアサインされたりとか。
色んな力関係から、
自分が全体に関わるところのコードを書いていいのかどうか分かんないときとか…。

なーんて、
遠慮してたら、
実はプロジェクトメンバの誰も、
知らなかっただけだったり(´・ω・`)


それでは。
ちゃお☆


まこぴー。