而不是:
id objc_msgSend(id self, SEL _cmd, args...)
我想:
id objc_msgSend(id self, SEL _cmd, va_list args)
现在我意识到,由于Mike Ash讨论here的原因,objc_msgSend
不是以第二种方式实施。
但我正在开发一个带有ObjC桥接的运行时解释器,无论如何我都喜欢它,不管性能影响如何。
现在,任何理智的人都会说:
为什么不使用
libffi
?
那是因为libffi
在macOS和iOS上已经过时了;已经有一段时间了(截至写这篇文章)。
objc_msgSend
是否有一些预先存在的包装器需要va_list
?我似乎无法找到一个,不幸的是,在这个时候,缺乏必要的装配技能来发展我自己。