有没有办法打印SEL动作?

时间:2012-05-04 18:21:11

标签: objective-c ios selector

例如,我想跟踪发送到我的canPeformAction的动作,并且它们太多,无法在每次出现时在调试器中显示“悬停”。因此,我想跟踪日志并在测试周期后检查它。

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

2 个答案:

答案 0 :(得分:35)

你想要

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

答案 1 :(得分:7)

使用 NSStringFromSelector 轻松获取选择器的可打印名称。

NSStringFromSelector(action)

  

NSString * NSStringFromSelector ( SEL aSelector );

     

返回给定选择器的字符串表示形式。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    NSLog(@"Action: %@", NSStringFromSelector(action));
}