首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么UTTypeCreatePreferredIdentifierForTag返回奇怪的UTI?

为什么UTTypeCreatePreferredIdentifierForTag返回奇怪的UTI?
EN

Stack Overflow用户
提问于 2017-04-20 11:39:33
回答 1查看 1.5K关注 0票数 3

如果我这么叫

代码语言:javascript
复制
import UIKit
import MobileCoreServices
import Foundation

var fileExtension:CFString = "7z" as CFString
var unmanagedFileUTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension, nil)?.takeRetainedValue();
print(unmanagedFileUTI)

我得到了

dyn.age8xs8u

结果是。我没有在age8xs8u上找到任何信息。这是7z的正确UTI吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-20 14:13:51

这意味着"7z“文件扩展名不为MobileCoreServices框架所知,也不被任何已安装的应用程序注册。在这种情况下,UTTypeCreatePreferredIdentifierForTag()创建并返回一个临时的UTI:

如果没有找到结果,则此函数将创建以dyn前缀开头的动态类型。这允许您传递UTI,并将其转换回原始标记。

只有当nil参数无效时,函数才返回inTagClass。使用有效的标记类参数,您将始终获得一个UTI,用于任意文件标识符。

您可以检查返回值是否具有前缀“dyn”。为了检查返回的UTI是动态创建的,还是注册的UTI。

根据https://en.wikipedia.org/wiki/7z的说法,7z文件格式的UTI是“org7.zip.7-zip-存档”。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43518514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档