3

我已经为 Mac OS X 开发了一个 Cocoa 应用程序。我想制作一些自定义插件(也带有接口)并在我的应用程序中动态加载它们。我的应用程序应该查看文件夹并检索所有文件(插件)并使它们在用户界面中可用。

有人可以建议我一个起点吗?

我怎样才能动态加载它们,插件必须是动态库或某事?

谢谢。

4

1 回答 1

4

你想看看NSBundle。一个可加载的包(一个框架是一个可加载的包)项目将产生你想要的。如果principleClass将包的属性设置为插件的顶级类,则可以从加载的包中检索该类的实例。您可以在给定的路径加载一个包

id bundle = [NSBundle bundleWithPath:pathToBundle];
NSError *err;
if(![bundle loadAndReturnError:&err]) {
  // err contains error info
} else {
  // bundle loaded properly
  Class pluginClass = [bundle principleClass];
  // instantiate pluginClass and off you go...
}
于 2011-03-28T16:15:41.560 回答