【问题标题】:Quicklook plugin issue with M LionM Lion 的 Quicklook 插件问题
【发布时间】:2014-01-02 09:55:41
【问题描述】:

我开发了一个 quicklook 插件,它适用于 M Lion 之前的所有 MAC OS X 版本。我正试图让它在 M Lion 和 Mavericks 上工作。我遇到了一个简单的问题,但找不到任何解决方法。

我调试插件并发现使用以下代码获取捆绑路径的问题:

[[NSBundle bundleWithIdentifier: @"com.mss.qlgenerator.pluginname"] bundlePath];

但我对这个声明的看法为零,因为插件停止工作。 任何帮助将不胜感激。提前致谢。

【问题讨论】:

  • 你想通过这个电话达到什么目的?这里没有足够的上下文来找出问题所在。
  • 我的“bundlePath”方法在我的 Mavericks QL 插件中返回非零结果。你的包标识符可能是错误的吗?...
  • @Cédric:不,我已经交叉检查过了,标识符是正确的,而且它在所有其他版本的 MAC 中都可以工作。
  • @Parcs,nil的返回响应意味着找不到请求的bundle-检查路径。
  • 此代码是在插件中,还是在您捆绑插件的应用程序中?

标签: macos cocoa plugins osx-mountain-lion quicklook


【解决方案1】:

我不确定为什么 bundleWithIdentifier: 会返回 nil 作为您自己的包标识符,假设您完全正确(没有拼写错误和相同的大小写)。

不过,还有另一种方法可以从任何 Objective-C 方法中获取您自己的包:[NSBundle bundleWithClass:[self class]](或者只是从类方法中获取bundleWithClass:self)。

如果您从 C 函数调用它(这很可能是 Quick Look 插件),您可以用一个类的名称替换 self[NSBundle bundleWithClass:[MyClass class]]。它必须是你在你的包中定义的一个类。

如果您的插件足够小以至于您没有任何类,您可以在您的插件源文件中私下声明并定义一个空的,仅用于此目的。 (只是不要在插件之间重用它——类名冲突是不好的。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 2011-08-10
    • 1970-01-01
    相关资源
    最近更新 更多