围绕 Apple 通用类型标识符函数的 Swift 包装器。
一个典型的用法可能如下所示:
let fileURL = URL(fileURLWithPath: ...)
let fileUTI = UTI(withExtension: fileURL.pathExtension)
// Check if it is a specific UTI (UTIs are equatable):
if fileUTI == UTI.pdf {
// handle PDF document...
}
// Check if an UTI conforms to a UTI:
if fileUTI.conforms(to: .image) {
// Handle image file...
}
所有系统定义的 UTType
都可以作为静态变量使用。例如,要访问 PDF 文档的 UTType,只需调用 UTI.pdf
即可。
要定义您自己的 UTI(可能用于您的自定义文档类型),您应该像这样创建一个扩展
public extension UTI {
static let myDocument = UTI(rawValue: "com.mycompany.mydocument")
}
您的自定义类型然后可以像这样访问:UTI.myDocument
。
从文件扩展名初始化 UTI
let fileURL = URL(fileURLWithPath: ...)
let fileUTI = UTI(withExtension: fileURL.pathExtension)
强制符合另一个 UTI
let fileURL = URL(fileURLWithPath: ...)
let fileUTI = UTI(withExtension: fileURL.pathExtension, conformingTo: UTI.package)
有类似的 API 用于处理 MIME 类型、粘贴板类型和 OSTypes。
您可以轻松地从任何 UTI 实例访问标签。例如,要获取 PDF 的 MIME 类型,只需调用 UTI.pdf.mimeType
即可。