我創建了一個基於文檔的應用程序,需要打開具有特定擴展名的xml文本文件。當我使用NSDocument模板在Xcode中創建項目時,我指定了我想要的擴展,並且一切正常。NSDocument應用程序和文件擴展名
遵循蘋果指南關於如何構建基於文檔的應用程序,我去編輯Info.plist文件以添加以前缺失的UTI的細節。突然我的應用程序停止打開文件,我想要的擴展名,實際上停止打開任何文件。另外,當我嘗試保存文件時,保存對話框不再提示任何擴展名。
當我保存文件,並從終端運行命令mdls
我得到
kMDItemContentTypeTree = (
"public.data",
"public.item"
)
,而不是public.xml
我的UTI在Info.plist的設定。 似乎我的應用程序停止識別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>
我已經嘗試使用Xcode模板創建一個基於文檔的新項目。在開始時,應用程序打開並將文檔保存在模板中指定的擴展名中。只要我在項目的目標信息設置中爲文檔類型輸入標識符,一切都會中斷。 – Jacopo