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 次 |
| 最近记录: |