43 iphone cocoa cocoa-touch objective-c uikit
示例:我有一个方法-myFooBarMethod:withFoo:bar:moreFoo:
,在该方法的实现中,我想动态获取它的名称,就像@"-myFooBarMethod:withFoo:bar:moreFoo:
进入NSString一样.没有硬签名的方法签名.
我觉得这必须与选择器做点什么.我怎么能得到当前方法的名称(执行代码的方法)作为NSString?
Mar*_*don 95
每个方法调用还传递两个隐藏的参数:id
命名self
和SEL
命名_cmd
.您可以使用NSStringFromSelector
将方法选择器转换为NSString:
NSStringFromSelector(_cmd);
Run Code Online (Sandbox Code Playgroud)
Pet*_*sey 17
使用__func__
.这是一个C字符串,因此对于NSString,请使用[NSString stringWithUTF8String:__func__]
.
这有两个优点_cmd
:
__func__
C99必须存在.)"-[MyView drawRect:]"
.作为这种事情有用的例子:这是我使用的NSLog消息的模板:
NSLog(@"%@ %@: %@", NSStringFromClass([self class]), NSStringFromSelector(_cmd), @"A Message");
Run Code Online (Sandbox Code Playgroud)
这会在记录时将类和方法转储到控制台.
归档时间: |
|
查看次数: |
11443 次 |
最近记录: |