__PRETTY_FUNCTION__

2010年10月16日土曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

@griffin_stewie さんのツィートで、__PRETTY_FUNCTION__ を NSLog() で使うと、処理中のクラスとメソッド名を表示できることを知った。
こうすると
- (void)viewDidLoad {
    :
 NSLog(@"1: %s", __PRETTY_FUNCTION__);
    :
}
こう出力される。
1: -[ViewController viewDidLoad]
おーこれは便利だ。

さらに @hkato193 さんのツィートが気になっていたので確認してみた。

こんなコードを書いた。
- (void)viewDidLoad {
    [super viewDidLoad];

 NSLog(@"1: %s", __PRETTY_FUNCTION__);
 
 [UIView animateWithDuration:1.0
      animations:^{
       NSLog(@"2: %s", __PRETTY_FUNCTION__);
      }];
 
 [UIView animateWithDuration:1.0
      animations:^{
       NSLog(@"3: %s", __PRETTY_FUNCTION__);
      }];


 [UIView animateWithDuration:1.0
      animations:^{
       [UIView animateWithDuration:1.0
            animations:^{
             NSLog(@"4: %s", __PRETTY_FUNCTION__);
            }];
      }];
}

実行結果。
1: -[ViewController viewDidLoad]
 2: __-[ViewController viewDidLoad]_block_invoke_1
 3: __-[ViewController viewDidLoad]_block_invoke_2
 4: __-[ViewController viewDidLoad]_block_invoke_4

ほー。

ソース
xcatsan's iOS-Sample-Code at 2010-10-16 - GitHub



参考情報


Cocoaの日々: Xcode のマクロ定義

Responses

Leave a Response

人気の投稿(過去 30日間)