我有一个OSX捆绑包,其中包含一个可关联的可执行共享库 资源(想想photoshop)。
如何在运行时找到包含插件和resoruces的包?
_NSGetExecutablePath()
和GetMainBundle()
获取主要应用程序,而不是
运行插件代码。
捆绑包没有固定的路径,它位于一些随机插件文件夹中 位于插件主机旁边。同样,它没有唯一的名称,如 可能有许多不同版本的"相同"插件相关联 使用不同版本的插件主机。
如果我有一大堆执行代码作为bundle的一部分加载,那么应该有一种明确的方法来引用同一个bundle中的资源。
答案 0 :(得分:0)
您使用[NSBundle bundleForClass:[SomeClassUniqueToYourPlugin class]]
来获取插件包,然后使用各种NSBundle
资源位置方法。
答案 1 :(得分:0)
执行此操作的规范方法是致电CFBundleGetBundleWithIdentifier
或[NSBundle bundleWithIdentifier:]
。
正如CFBundleGetBundleWithIdentifier
所述:
对于使用其标识符定位的包,必须已加载该包。按标识符查找包的主要目的是框架中的代码或插件以查找自己的包。
对于[NSBundle bundleWithIdentifier:]
:
此方法通常由框架和插件用于在运行时找到自己的包。