我有一个适用于 Mac OS X 的应用程序,它支持打算同时加载的插件。其中一些插件构建在 Cocoa 框架之上,该框架可能会在一个插件中接收更新,但不会在另一个插件中接收更新。鉴于 Objective-C 当前的函数调度方法,任何插件对给定 Objective-C 例程的任何调用每次都将转到同一个例程。这意味着插件 A 可以通过一个简单的 Objective-C 调用在插件 B 中找到自己!显然,我们正在寻找的是让每个插件与它自己构建的框架版本进行交互。我 一直 在 阅读有关 Objective-C 和这种特殊需求的一些内容,但还没有找到明确的解决方案。
更新:我对上面“框架”一词的使用具有误导性:框架是一个静态链接库,内置在需要它的插件中。然而,Objective-C 处理调度的方式,即使是这些静态链接的不同代码片段也会在 Objective-C 调度程序中混合在一起,从而导致意想不到的后果。
更新 2:我对此处提供的答案仍然有些模糊,因为它似乎没有像未经证实的假设那样提出解决方案。