You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将废弃的UTTypeCopyPreferredTagWithClass方法升级为iOS 16兼容版本?

解决方案

你的问题出在UTType的初始化器用反了——当前代码用UTType(filenameExtension: uti)是通过文件扩展名创建UTType实例,但你的方法需求是从UTI字符串获取对应的文件扩展名,正确的做法是用UTI初始化UTType:

extension URL {
    public static func pathExtensionForUTI(_ uti: String) -> String? {
        UTType(uti: uti)?.preferredFilenameExtension
    }
}

说明

  • UTType(uti: uti)会根据传入的UTI字符串生成对应的UTType实例,和原废弃方法UTTypeCopyPreferredTagWithClass的入口逻辑一致。
  • preferredFilenameExtension属性直接返回该UTType对应的首选文件扩展名,完全替代原方法的功能。
  • 如果目标UTI没有关联的首选扩展名,方法仍会返回nil,这和原废弃方法的行为保持一致,若需要特殊处理可自行添加 fallback 逻辑。

内容的提问来源于stack exchange,提问作者swiftdrift

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 05:02:37