我创建了一个基于文档的应用程序,它需要打开具有特定扩展名的 xml 文本文件。当我使用 NSDocument 模板在 Xcode 中创建项目时,我指定了我想要的扩展,并且一切正常。
按照 Apple 关于如何构建基于文档的应用程序的指南,我编辑了 Info.plist 文件以添加之前缺少的 UTI 的详细信息。突然,我的应用程序停止打开具有我想要的扩展名的文件,实际上停止打开任何文件。此外,当我尝试保存文件时,保存对话框不再建议任何扩展名。
当我保存文件并mdls
从终端运行命令时,我得到
kMDItemContentTypeTree = (
"public.data",
"public.item"
)
而不是public.xml
我在 Info.plist 中为 UTI 设置。似乎我的应用程序停止识别存储在 Info.plist 中的信息。我必须在 Xcode 中连接什么才能使其正常工作吗?
这是我的 Info.plist 文件的相关部分:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>xmds</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>AppIcon</string>
<key>CFBundleTypeName</key>
<string>XMDS Script</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>xmds</string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSItemContentTypes</key>
<array>
<string>com.dedalus.degs</string>
</array>
<key>NSDocumentClass</key>
<string>Document</string>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.xml</string>
</array>
<key>UTTypeDescription</key>
<string>XMDS Script</string>
<key>UTTypeIconFile</key>
<string>AppIcon</string>
<key>UTTypeIdentifier</key>
<string>com.dedalus.degs</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<array>
<string>xmds</string>
</array>
<key>public.filename-extension</key>
<array>
<string>xmds</string>
</array>
</dict>
</dict>
</array>