Apple类型标识符UTType
Apple类型标识符UTType

Apple类型标识符UTType

UTType(全称 Uniform Type Identifier)是 Apple 提供的一种统一的类型标识符系统,用来表示文件、数据、内容的类型。

UTType 是一种类型描述符,类似于:

1、MIME 类型(如 “image/png”)。

2、文件扩展名(如 .png)。

3、自定义类型(如 “com.myapp.customdoc”)。

常见内置类型(iOS/macOS自带)

1、.plainText:纯文本,文件扩展名 .txt。

2、.image:图像类总称,文件扩展名 .png, .jpg 等。

3、.png:PNG 图像,文件扩展名 .png。

4、.jpeg:JPEG 图像,文件扩展名 .jpg, .jpeg。

5、.pdf:PDF 文件,文件扩展名 .pdf。

6、.json:JSON 数据,文件扩展名 .json。

7、.audio:音频类总称,文件扩展名 .mp3, .wav 等。

8、.movie:视频类,文件扩展名 .mp4, .mov 等。

9、.data:二进制数据,任意二进制文件。

10、.directory:文件夹,注意不是文件,是目录。

11、.package:文档包,文件扩展名 .app, .mydoc。

使用示例

1、限制文件类型为图片或文文本

.fileImporter(
    isPresented: $showImporter,
    allowedContentTypes: [.png, .jpeg, .plainText]
) { result in
    // ...
}

这里fileImporter为SwiftUI导入文件,设置allowContentTypes的UTType,可以限制文件类型。

使用场景

1、fileImporter 选择哪些类型:allowedContentTypes: [UTType]。

2、fileExporter 导出什么类型:contentType: UTType。

3、DocumentGroup 支持哪些文档:static var readableContentTypes: [UTType]。

4、自定义文档类型:注册自己的 UTType(info.plist)。

构造自定义UTType(高级用法)

如果有自己的文档格式(如 .mydoc),可以:

1、定义类型(例如:com.yourcompany.mydoc)

static var readableContentTypes: [UTType] {
    [UTType(exportedAs: "com.yourcompany.mydoc")]
}

2、在Info.plist中注册

<key>CFBundleDocumentTypes</key>
<array>
  <dict>
    <key>CFBundleTypeName</key>
    <string>My Custom Document</string>
    <key>LSItemContentTypes</key>
    <array>
      <string>com.yourcompany.mydoc</string>
    </array>
    <key>CFBundleTypeExtensions</key>
    <array>
      <string>mydoc</string>
    </array>
    <key>CFBundleTypeRole</key>
    <string>Editor</string>
  </dict>
</array>

这里的注册流程跟 UTI 类似。

总结

UTType是Apple的统一类型标识符,用于描述文件类型、数据类型。

支持文本、图像、音频、PDF、二进制、自定义等类型。

通常在fileImporter、fileExporter、DocumentGroup中使用。

注意:在SwiftUI中使用UTType时,需要导入UniformTypeIdentifiers:

import UniformTypeIdentifiers

相关文章

1、Apple文件和数据类型UTI:https://fangjunyu.com/2025/07/05/apple%e6%96%87%e4%bb%b6%e5%92%8c%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b%e7%9a%84uti/

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注