插件架构,访问应用程序中的代码?

时间:2010-12-01 10:30:50

标签: objective-c cocoa plugins

对于我正在进行的项目,我希望Mac应用程序接受插件。我喜欢将Bundles添加到应用程序以扩展其功能的整个想法。

只有我遇到一个小问题,我找不到答案:

我需要在我的应用程序中包含一个JSON解析器,以实现某些功能。插件Bundle是否也可以使用相同的解析器?或者每个使用JSON解析器的插件是否需要自己包含解析器?

对单独的Bundles执行此操作的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

在OS X上有两种类型的可加载内容: dylib 插件。 (这两个术语在mach-o的上下文中具有专门的技术含义,OS X使用的二进制格式。)

加载的 dylib 不能引用可执行文件中的库,而加载的插件可以。作为副作用, dylib 可以加载到任何可执行文件,但插件只能加载到您创建插件时指定的可执行文件中。

所以你想制作一个插件。 XCode中有一个模板可以做到这一点。不要忘记在链接器标志中指定目标可执行文件,该标志可以在检查器中的某处设置。

如需了解更多信息,请阅读Code Loading Programming Topics