例如,我想跟踪发送到我的canPeformAction的操作,并且它们数量太多,无法在每次出现时在调试器中显示“悬停”。因此,我想跟踪日志并在我的测试周期后检查它。有没有办法打印SEL操作?
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
NSLog(@"%s: sender=%@", __FUNCTION__, sender, action);
}
例如,我想跟踪发送到我的canPeformAction的操作,并且它们数量太多,无法在每次出现时在调试器中显示“悬停”。因此,我想跟踪日志并在我的测试周期后检查它。有没有办法打印SEL操作?
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
NSLog(@"%s: sender=%@", __FUNCTION__, sender, action);
}
你想
NSLog(@"%s: sender=%@, selector=%s", __FUNCTION__, sender,sel_getName(action));
'sel_getName()'返回一个C字符串,而不是一个'NSString'。使用'%s'作为格式或(更好)'NSStringFromSelector()'。 –
谢谢生病编辑我asnwer –
谢谢Jacques和戴夫 - 我问这个问题后,我发现宏NSStringFromSelector。 +1并接受你。 – mobibob
使用NSStringFromSelector轻松获得选择的可打印名称。
NSStringFromSelector(action)
NSString * NSStringFromSelector (SEL aSelector);
返回给定选择的字符串表示。
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
NSLog(@"Action: %@", NSStringFromSelector(action));
}
我发现我的答案:NSStringFromSelector(动作) – mobibob