我已阅读 https://developer.apple.com/library/mac/documentation/cocoa/Conceptual/SpotlightCoreData/Articles/recordLevel.html 上的教程现在已经很多次了,但由于某种原因我似乎无法得到它。
我尝试创建聚光灯导入器,手动将其复制到 ~/Library/Spotlight
但没有成功。
任何人都可以向我指出 CoreData-Spotlight-OSX 应用程序的工作示例吗?一个远程基本的东西就足够了。
xcode 模板默认将 .importer 存储在捆绑资源文件夹中,我在其他地方读到,如果应用程序是沙盒的,它应该位于 Library/Spotlight 文件夹中。
再次尝试,但失败了。
救命!
最佳答案
我编写了一个 CoreData/Spotlight 导入器。即使在最好的时期,这也总是有点挣扎。我在这些文档之前写了我的文档,在他们编写为您写出记录的守护进程之前。当 CoreData 团队第一次完成我的解决方案的版本时,他们的版本有几个严重的错误,导致我无法使用它,所以我报告了它们并切换回我的版本 - 我希望现在它们已经修复,但这是需要注意的事情。
另一件事是,很多应用程序开发者(包括我)发现 Spotlight 导入 CoreData 记录的功能在 Mavericks 上被破坏,这显然是因为沙箱的变化。这已被广泛报道,我已经提交了一个错误。如果您在小牛队,您也可能会遇到这个问题。
但是,要调试:
您应该做的第一件事是向导入器添加一些 NSLogging,并在对数据库进行更改后检查控制台。等待查看以“md”(元数据)开头的任何进程是否报告错误,或者是否看到您编写的日志。
此外,执行 man mdimport
并使用记录文件之一从插件的命令行运行 mdimport。使用 mdimport 的 -g 选项,您可以在任何地方测试导入器,而使用 -d4,您将获得大量调试信息。
您还可以执行mdimport -L
来查看系统是否可以识别您的导入程序。
一般来说,您需要查明 ⑴ 您的导入程序是否正常工作,或者只是崩溃(通过直接使用 mdimporter 运行它) ⑵ 系统是否看到您的导入程序并识别出它负责您选择的文件类型的 stub (mdimport -L) 和 ⑶ 您的导入者是否有权查看记录文件(通过运行您的应用程序并观看控制台)。
关于macos - 使用 Coredata 进行创纪录水平的 Spotlight 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21392278/