Cha*_* SP 2 iphone cocoa cocoa-touch objective-c
我在一个方法(任何方法)中使用了NSLog(@"%@",super ),它正在崩溃....为什么?如何打印超级内容?
更新 :
currentclassname : superClassName
{
}
Run Code Online (Sandbox Code Playgroud)
如果我使用NSLog(@"%@",[超级描述]); 它是打印"<currentclassname: 0x3db7230>"而不是superClassName ...它应该打印superClassName权限.
提前致谢,
遇到关键字 super并对其进行方法调用时,编译器会生成不同的调用 - objc_msgSendSuper*()而不是通常的调用objc_msgSend*().
objc_msgSendSuper*()调用获取类型的参数objc_super*而不是objc_object*:
struct objc_super {
id receiver;
Class class;
};
Run Code Online (Sandbox Code Playgroud)
因此,objc_super*值不是特殊实例,它们必须与特殊objc_msgSendSuper*()函数一起使用.
因此,正如Alex所说,只是-description直接调用super- 它的值在上下文之外是没有意义的,除非你专门用它来运行函数objc_msgSendSuper().
| 归档时间: |
|
| 查看次数: |
650 次 |
| 最近记录: |