我有一个包含音频的字符串和 URL,想通过 Sharelink 分享两者。
我已经写了一个可转让的:
struct TransferableTextAndAudio: Codable, Transferable {
let text: String
let audio: URL
static var transferRepresentation: some TransferRepresentation {
ProxyRepresentation(exporting: \.text)
FileRepresentation(exportedContentType: .audio) { item in
return SentTransferredFile(item.audio, allowAccessingOriginalFile: true)
}
}
}
与我分享:
ShareLink(item: TransferableTextAndAudio(text: "String to share", audio: audioUrl),
preview: SharePreview("Preview")) {
Label("Share text and audio", systemImage: "square.and.arrow.up")
}
但是,只有文本被共享。当我注释掉 ProxyRepresentation 行时,音频被共享。为什么会这样?我是不是对 Transferable 的工作原理有些不了解?