如何获取当前方法的名称或签名到NSString中?
例如:我有一个方法-myFooBarMethod:withFoo:bar:moreFoo:并在该方法的实现中,我想dynamic地获取它的名字,比如@"-myFooBarMethod:withFoo:bar:moreFoo: into NSString。方法签名的types。 
我觉得这必须与select器做些什么。 我怎么能得到当前方法(执行代码的那个)的名称为NSString?
 每个方法调用还传递两个隐藏的参数:名为self的id和名为_cmd的SEL 。 您可以使用NSStringFromSelector将方法select器转换为NSString: 
 NSStringFromSelector(_cmd); 
 使用__func__ 。 这是一个Cstring,所以对于一个NSString,使用[NSString stringWithUTF8String:__func__] 。 
 这比_cmd有两个优点: 
-  它适用于C函数和C ++方法以及Objective-C方法。  (事实上,C99需要存在__func__。)
-  在Objective-C方法中,它包括方法types(类方法和实例方法)和类名以及select器。 例如, "-[MyView drawRect:]"。
作为这种事情有用的例子:这是我使用的NSLog消息的模板:
 NSLog(@"%@ %@: %@", NSStringFromClass([self class]), NSStringFromSelector(_cmd), @"A Message"); 
这会在logging时将类和方法转储到控制台。
按照Martin的回答,但是您也可能想要阅读Objective C 2.0运行时信息。
然而,像这样的胆子往往会导致很难pipe理代码。