nod*_*nja 11 cocoa cocoa-touch objective-c
有些函数将@selector(methodName)作为参数.我使用NSLog来查找@selector是什么,并返回一个整数.它看起来像一个PID,但是当我运行ps ax时,无法找到PID.这个整数表示什么,为什么我们必须一直使用@selector而不是只传递方法名?
Dav*_*ong 35
@selector()是一个编译器指令,用于将括号内的任何内容转换为SEL.A SEL是表示方法名称的类型,但不是方法实现.(为此你需要一个不同的类型,可能是一个IMP或一个Method)在引擎盖下,a SEL被实现为char*,虽然依赖于这种行为不是一个好主意.如果你想检查SEL你拥有的东西,最好的办法就是把它变成NSString*这样:
NSLog(@"the current method is: %@", NSStringFromSelector(_cmd));
Run Code Online (Sandbox Code Playgroud)
(假设您知道这_cmd是每个方法调用的隐藏参数之一,并且是SEL与当前方法相对应的)
在Objective-C编程语言教程有关于这个问题的更多信息.
| 归档时间: |
|
| 查看次数: |
6710 次 |
| 最近记录: |