小编hja*_*tij的帖子

Cocoa/Objective-C插件碰撞

我的应用程序有一个插件系统,允许我的用户编写自己的插件,这些插件在运行时加载.通常这很好,但在某些情况下,两个插件使用相同的库,这将导致这两个插件之间的冲突.

例:

插件A想要使用TouchJSON来处理JSON,因此创建者将TouchJSON代码添加到插件源中,并将其编译并链接到插件二进制文件中.后来插件B也希望使用相同的库并完全相同.现在,当我的应用程序加载这两个不同的插件时,它会检测到这个并发出如下警告:

类CJSONScanner在[path_to_plugin_a]和[path_to_plugin_b]中实现.将使用两者之一.哪一个未定义.

由于我的应用程序只是加载插件并确保它们符合某个协议,我无法控制加载哪些插件以及两个或多个插件使用相同的库.

只要两个插件使用完全相同的库版本,这可能会起作用,但只要API在一个插件中发生更改,就会出现一堆问题.

我能做些什么吗?

cocoa objective-c objective-c-runtime

5
推荐指数
1
解决办法
180
查看次数

标签 统计

cocoa ×1

objective-c ×1

objective-c-runtime ×1