如果我称之为
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吗?
答案 0 :(得分:2)
这意味着MobileCoreServices框架不知道“7z”文件扩展名,并且未被任何已安装的应用程序注册。在这种情况下
UTTypeCreatePreferredIdentifierForTag()
创建并返回一个临时UTI:
如果未找到结果,则此函数将创建以dyn前缀开头的动态类型。这允许您传递UTI并将其转换回原始标记。
仅当nil
参数无效时,函数才返回inTagClass
。
对于任意文件标识符,使用有效的标记类参数,您将始终返回UTI。
您可以检查返回值是否具有前缀“dyn”。为了检查 如果返回的UTI是动态创建的UTI或注册的UTI。
根据https://en.wikipedia.org/wiki/7z,7z文件的UTI 格式为“org.7-zip.7-zip-archive”。