Objective c 保存、文档扩展和首选项(Info.plist)

Objective c 保存、文档扩展和首选项(Info.plist),objective-c,xcode,save,plist,xib,Objective C,Xcode,Save,Plist,Xib,我有一个简单的基于文档的可可应用程序叫“RaiseMan”。当我要保存文件时,控制台中会显示以下消息: -[NSDocumentController fileExtensionsFromType:]已弃用,并且在传递统一类型标识符(UTI)时不起作用。如果应用程序没有直接调用它,那么问题可能是其他一些NSDocument或NSDocumentController方法被实际上没有在任何地方声明的UTI弄糊涂了。也许它应该在这个应用程序的Info.plist的UTExportedTypeDecla

我有一个简单的基于文档的可可应用程序叫“RaiseMan”。当我要保存文件时,控制台中会显示以下消息:


-[NSDocumentController fileExtensionsFromType:]已弃用,并且在传递统一类型标识符(UTI)时不起作用。如果应用程序没有直接调用它,那么问题可能是其他一些NSDocument或NSDocumentController方法被实际上没有在任何地方声明的UTI弄糊涂了。也许它应该在这个应用程序的Info.plist的UTExportedTypeDeclarations部分声明,但不是。所指的UTI是“com.bignerdranch.raiseman doc”。

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


背景:我目前正在研究Aaron Hillegass的Mac OS X编程,第13章…

因此,为了达到预期的结果,我确保在项目目标的属性检查器下,标识符和UTI类型(在文档类型表中),以及.plist文件中的UT类型标识符都是相同的
UTTypeIdentifier

“com.yourDomainName.ProductName”

我的解决方案是创建一个新的导出UTI(如警告所述),并将文档类型中的数据复制到上面。在一个干净的构建文件夹之后(⇧⌘K) 警告消失了。我没有创建导入的UTI

过程记录如下:

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


简言之,如果您在“文档类型”中创建文件类型,则需要在“导出的UTI”和“导入的UTI”中再次创建。实际上,只需“导入的UTI”。