2014年5月15日木曜日

NSLogのまとめ公式版

公式のNSLogまとめがきた。

基本的な使い方から始まり __PRETTY_FUNCTION__などの特別なシンボル、callStackSymbols によるバックトレースの話。

そして DEBUG マクロの使い方。
- (void)pressButton:(id)sender
{
#if DEBUG
    NSLog(@"preparing to press button!");
#endif
    [self prepareForButtonPress];
 
#if DEBUG
    NSLog(@"pressing button!");
#endif
 
    [self activatePressButtonSequence:self withCompletion:^{
#if DEBUG
        NSLog(@"button sequence complete.");
#endif
            [self buttonPowerDown];
        }];
    NSLog(@"This line has no DEBUG macro, so it gets printed in both debug and release builds!");
}


今のXcodeではDEBUGマクロはデバッグビルドで有効になる。



で、このQAからNSLogの便利情報がいろいろ見つかった。

まずはNSLogで指定できるフォーマット


この前に紹介した z とかの解説あり。公式ドキュメントはここにあったのか。

この中に Platform Dependencies というのがある。

そうか NSInteger の正式フォーマットは %ld or %lx なのか。NSUIntegerは %lu or %lx。%lx が良さそう。
さらにポインタが %p or %zx であることが判明。%xでワーニングが出てて悩ましかったのがこれで解決。


さらに __LINE__ や __PRETTY_FUNCTION__ の公式情報など。




他にも有用なリンクがまとめられていた。

0 件のコメント:

コメントを投稿