我开发了一个quicklook插件,适用于M Lion之前的所有MAC OS X版本。我想让它在M Lion和Mavericks上运作。我对一个简单的问题感到震惊,但无法解决任何问题。
我调试插件,发现使用以下代码获取包路径的问题:
[[NSBundle bundleWithIdentifier: @"com.mss.qlgenerator.pluginname"] bundlePath];
但我对此声明没有结果,因为插件停止工作。 任何帮助将受到高度赞赏。提前谢谢。
答案 0 :(得分:0)
我不确定为什么bundleWithIdentifier:
会为您自己的包标识符返回nil
,假设您完全正确(没有拼写错误和相同的情况)。
不过,还有另一种方法可以从任何Objective-C方法中获取自己的包:[NSBundle bundleWithClass:[self class]]
(或者只是来自类方法中的bundleWithClass:self
)。
如果您是从C函数(可能是Quick Look插件)调用此函数,则可以用self
:[NSBundle bundleWithClass:[MyClass class]]
替换类的名称。它只需要是您在捆绑中定义的类。
如果您的插件足够小而没有任何类,则可以在插件源文件中私下声明并定义一个空的插件。 (只是不要在插件类名称冲突之间重复使用它是坏事。)