UIPasteboard setItems: options API, UTType.plainText: swift 用法

UIPasteboard setItems: options API, UTType.plainText: swift usage

我正在尝试在 Swift 中使用以下 API:UIPasteboard: setItems(_:options:) ,如 this answer 中所建议:

UIPasteboard.general.setItems([[kUTTypeUTF8PlainText as String: text]], options: [.expirationDate : Date(timeIntervalSinceNow: 10)])

不过,似乎 kUTTypeUTF8PlainText 常量已被弃用,我需要使用 UniformTypeIdentifiers 框架:

pasteboard.setItems([[String(UTType.plainText): string]],
                    options: [.expirationDate: Date(timeIntervalSinceNow: 120)])

但是,setItems: 方法只接受 String 类型作为键,所以我需要以某种方式将 UTType.plainText 类型转换为 String 类型。我怎样才能做到这一点?

您应该使用 identifier 属性(另请注意等效类型称为 utf8PlainText):

UTType.utf8PlainText.identifier

如文档所述:

API that doesn’t use UTType uses a String or CFString to refer to a type by its identifier.

UIPasteBoard就是这样一个API。