2012-05-04 13 views
13

たとえば、私はcanPeformActionに送信されたアクションをトレースしたいが、デバッガに "ホバー"を付けて表示するには数が多すぎます。したがって、私はテスト・サイクルの後にログにトレースして検査します。SELアクションを印刷する方法はありますか?

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender { 
    NSLog(@"%s: sender=%@", __FUNCTION__, sender, action); 
} 
+7

私は私の答えを見つけた:NSStringFromSelector(アクション) – mobibob

答えて

34

あなたが

NSLog(@"%s: sender=%@, selector=%s", __FUNCTION__, sender,sel_getName(action)); 
+4

'sel_getNameは()' C文字列ではなく、 'NSString'を返します。形式や(より良い) 'NSStringFromSelector()'には '%s'を使います。 –

+0

ありがとうill edit my asnwer –

+1

ありがとう、JacquesとDave - 私は質問した後、マクロNSStringFromSelectorを見つけました。 +1して受け入れてください。 – mobibob

6

使用NSStringFromSelectorが簡単セレクターの印刷可能な名前を取得したいです。

NSStringFromSelector(action)

NSString * NSStringFromSelector (SEL aSelector);

所与セレクターの文字列表現を返します。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender { 
    NSLog(@"Action: %@", NSStringFromSelector(action)); 
} 
関連する問題