5

我有一个简单的基于文档的 Cocoa 应用程序,名为“RaiseMan”。当我去保存文件时,控制台中会出现此消息:

-[NSDocumentController fileExtensionsFromType:] is deprecated, and does not work when passed a uniform type identifier (UTI). If the application didn't invoke it directly then the problem is probably that some other NSDocument or NSDocumentController method is getting confused by a UTI that's not actually declared anywhere. Maybe it should be declared in the UTExportedTypeDeclarations section of this app's Info.plist but is not. The alleged UTI in question is "com.bignerdranch.raiseman-doc".

如果我将当前文件保存为“Test”,它会生成一个以 .plist 格式打开的文件,并且不会使用 Raiseman 应用程序打开。如果我将它保存为“Test.rsmn”(显式输入扩展名),它会将其保存为 Raiseman 类型的文件,但是当我重新打开该文件时,我无法访问任何用户首选项或首选项面板 (.xib) .

背景:我目前正在阅读 Aaron Hillegass 的Mac OS X 编程,第 13 章...

4

2 回答 2

5

因此,为了达到预期的结果,我确保在项目 Targets 的 Properties 检查器下,Identifier 和 UTI 类型(在 Document Type 表中)以及 .plist 文件中的 UT Type 标识符都是相同的<key>UTTypeIdentifier</key> <string>"com.yourDomainName.ProductName"</string>.

于 2013-05-06T13:39:42.023 回答
3

我的解决方案是创建一个新的导出 UTI(如警告所示)并从 Document Type 复制数据。在清理构建文件夹(⇧⌘K)之后,警告消失了。我没有创建Imported UTI

该过程记录在这里

如果您使用自己的 UTI 定义自定义文档类型,则必须导出 UTI。

于 2019-09-12T10:58:24.947 回答