Swift中如何将UTTypePlainText作为String类型使用?
解决iOS 15+下kUTTypePlainText弃用警告及UTType找不到的问题
问题核心
iOS 15起,kUTTypePlainText这类CoreServices中的UTI常量被弃用,统一迁移到UniformTypeIdentifiers框架下的UTType体系,但直接使用UTTypePlainText或UTType.plainText会报错,本质是没正确获取字符串类型的标识符参数。
正确解决步骤
- 精简框架导入:仅保留
UniformTypeIdentifiers导入,移除CoreFoundation、CoreServices、MobileCoreServices这类不必要的导入(避免框架冲突)。 - 使用正确的UTType调用方式:
UTType.plainText是UTType实例,而NSItemProvider的typeIdentifier参数需要字符串类型,需调用其identifier属性:
let itemProvider = NSItemProvider(item: Data(data), typeIdentifier: UTType.plainText.identifier)
补充:如果你的data本身就是Data类型,直接传入即可,无需转成NSData,iOS 15+完全兼容Data作为NSItemProvider的item参数
额外验证操作
- 确认项目Deployment Target已设置为iOS 15.0及以上
- 执行Xcode清理缓存(Product -> Clean Build Folder)后重新编译
内容的提问来源于stack exchange,提问作者lurning too koad
相关产品推荐
相关产品推荐

