如果我这么叫
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吗?
发布于 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-存档”。
https://stackoverflow.com/questions/43518514
复制相似问题