我正在尝试将自定义文件扩展名与我正在处理的应用程序相关联,以便当我双击具有该特定扩展名的文件时,我的应用程序将启动。
.abc文件只是一个收集几个.xml文件的存档文件(.zip重命名为.abc)。当我用我的应用程序加载其中一个.abc文件时,将解压缩归档文件并解析.xml文件,以便我可以在代码中为某些变量设置一些值。
如果我理解正确,这有两个部分。
现在我遇到第一部分的问题。我已经阅读了一些处理此主题的堆栈溢出帖子(例如here或here),但我无法理解他们如何提出字符串值的内容密钥<LSItemContentTypes>
(我已经尝试过abc但它不起作用)和密钥<UTTypeIdentifier>
。
到目前为止,这是我已添加到info.plist文件中的代码
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFile</key>
<array>
<string>myicon.icns</string>
</array>
<key>CFBundleTypeName</key>
<string>My Custom Project File</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>don't.know.what.to.put.here.abc</string>
</array>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string> <!--not sure about that value-->
</array>
<key>UTTypeDescription</key>
<string>My Custom Project File</string>
<key>UTTypeIdentifier</key>
<string>don't.know.what.to.put.here.abc</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>abc</string>
<key>public.mime-type</key>
<string>application/octet-stream</string> <!--not sure about that value-->
</dict>
</dict>
</array>
另外,在我的情况下,UTTypeConformsTo
public.data是否正常?由于自定义文件扩展名表示包含xml文件的存档?
如果有人可以帮我这个:)
由于
答案 0 :(得分:0)
我找到了我的问题的解决方案,我只是误读了文档,因为键CFBundleTypeIconFile
是一个字符串而不是一个字符串数组(我感到困惑,因为我正在关注和iOS示例使用键{{ 1}}这是一个数组)