【发布时间】:2017-06-24 03:28:51
【问题描述】:
对于基于 NSDocument 的应用程序的下一个版本,我正在修改文档参数,即 Info.plist > CFBundleDocumentTypes 和 UTExportedTypeDeclarations 中的值。具体来说,我正在从平面 NSPersistentDocument 更改为文档包(在 BSManagedDocument 的帮助下)。
修改后的应用程序可以创建新文档,但它们在 Finder 中出现一个通用图标,当我关闭这样一个新文档并尝试重新打开它时,-[NSDocumentController openDocumentWithContentsOfURL:display:completionHandler:]fails,在 NSCocoaErrorDomain 中创建错误代码 256 ,描述“newDoc.myExtension”无法处理,因为MyApp无法打开该类型的文件,失败原因MyApp无法打开该类型的文件。
我了解有几个重要的参数 CFBundleDocumentTypes 和 UTExportedTypeDeclarations,这些参数必须全部正确,否则会出现此错误。在这种情况下,它们是正确的。我通过将我构建的产品中的 Info.plist 与另一个但类似的应用程序的 Info.plist 进行比较来确认这一点。
我也尝试在 main() 中使用 inUpdate = true 调用 LSRegisterURL(),但这没有帮助。
可能出了什么问题?我在 macOS 10.12.6 中运行,使用 macOS 10.13 SDK 和 Xcode 9 构建。
【问题讨论】:
标签: macos cocoa info.plist nsdocument