Swift开发中public.mpeg-4类型标识符是否有对应的预定义常量?
可用的替代常量
确实有官方预置的常量可以替代手写的"public.mpeg-4"字符串,常用的有两类:
- 通用UTI常量:导入
UniformTypeIdentifiers框架后,可以使用UTType.mpeg4Movie(Swift 语法)或kUTTypeMPEG4(Objective-C 语法),这是系统级定义的标准MP4格式统一类型标识符,和你手写的字符串值完全一致。如果需要兼容iOS13及更低版本,可以使用旧版kUTTypeMPEG4常量,导入MobileCoreServices框架即可调用。 - 音视频场景专用常量:如果你的项目已经导入了
AVFoundation做视频处理,可以直接用AVFileType.mpeg4(Swift 语法)或AVFileTypeMPEG4(Objective-C 语法),它的原始值同样是"public.mpeg-4",专门适配音视频相关的API调用场景。
修改后的代码示例(Swift):
import UniformTypeIdentifiers result.itemProvider.loadFileRepresentation(forTypeIdentifier: UTType.mpeg4Movie.identifier) { fileURL, error in // 原有逻辑 }
常量声明查找方式
两类常量都可以直接在Xcode中跳转查看完整定义:
- 选中
UTType.mpeg4Movie或者kUTTypeMPEG4按Command + 点击,就能跳转到UniformTypeIdentifiers框架的头文件,这里列出了所有系统预置的文件类型UTI常量,包括图片、音频、文档、压缩包等所有常见格式的对应定义。 - 选中
AVFileType.mpeg4按Command + 点击,可以跳转到AVFoundation框架的AVAsset相关头文件,这里的常量都是专门针对音视频格式的封装定义。
内容的提问来源于stack exchange,提问作者zumzum
相关产品推荐
相关产品推荐

