gpt4 book ai didi

iphone - NSLog(@"%@", super )崩溃

转载 作者:行者123 更新时间:2023-12-03 16:24:07 25 4
gpt4 key购买 nike

我在一个方法(任何方法)中使用了 NSLog(@"%@",super) 并且它崩溃了......为什么?如何打印 super 内容?

更新:

currentclassname : superClassName
{
}

如果我使用 NSLog(@"%@", [super description]);正在打印"<currentclassname: 0x3db7230>"而不是 superClassName...预计会正确打印 superClassName。

提前致谢,

最佳答案

当遇到关键字 super 及其方法调用时,编译器会生成不同的调用 - objc_msgSendSuper*()而不是通常的objc_msgSend*() .

objc_msgSendSuper*() 调用获取 objc_super* 类型的参数而不是objc_object* :

struct objc_super {
id receiver;
Class class;
};

因此,objc_super* 值不是特殊实例,它们必须与特殊的 objc_msgSendSuper*() 函数一起使用。

因此,正如 Alex 所说,只需直接在 super 上调用 -description - 它的值在其所在上下文之外是没有意义的,除非您专门将它与运行时函数一起使用就像objc_msgSendSuper()

关于iphone - NSLog(@"%@", super )崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2920657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com