gpt4 book ai didi

objective-c - 如何编写在 Objective-C 中调用 `super` 实现的 c 函数?

转载 作者:搜寻专家 更新时间:2023-10-30 20:18:27 24 4
gpt4 key购买 nike

<分区>

我需要实现一个通用 C 函数,它将调用 super 的实现并返回值。我将在运行时将此函数注入(inject)目标类。目标选择器的参数数量可以是任意数量,并且只有在运行时才知道。

我按如下方式实现了一个 C 函数,但我不知道如何使用可变参数列表调用 super 的实现:

id forwardMessageToSuper (id self, SEL _cmd, ...) {

// Is this `super` definition right?
struct objc_super super = {
self,
[self superclass]
};

// How can I pass the variable argument list (...) to super?
id result = objc_msgSendSuper(&super, _cmd, ...);

return result;
}

另一个问题:如何以及何时使用 objc_msgSendSuper_stret 来调用 super 的实现?

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