SwiftUTI

围绕 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...
}

创建系统和自定义 UTI

所有系统定义的 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 即可。