我有一个简单的基于文档的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".
如果我将当前文件保存为“测试”,则会显示一个以.plist格式打开的文件,并且不会使用Raiseman应用程序打开。如果我将其保存为“Test.rsmn”(明确键入扩展名),则将其保存为Raiseman类型文件,但是当我重新打开文件时,我无法访问任何用户首选项或首选项面板(.xib)
背景:我目前正在通过Aaron Hillegass的 Mac OS X编程,第13章......
答案 0 :(得分:5)
因此,为了达到预期的效果,我确保在项目目标的属性检查器下,标识符和UTI类型(在文档类型表中),以及.plist文件中的UT类型标识符是完全相同<key>UTTypeIdentifier</key>
<string>"com.yourDomainName.ProductName"</string>
。
答案 1 :(得分:0)
对我来说,解决方案是创建一个新的 Exported UTI (如警告所述),然后从“文档类型”中复制数据。 清洁生成文件夹(⇧⌘K)后,警告消失了。我没有创建导入的UTI 。
该过程记录在here中:
如果您使用自己的UTI定义自定义文档类型,则必须导出UTI。