用途:指导在 SwiftUI 与 UIKit 中实现拖放、复制/粘贴、ShareLink 以及自定义类型的内容共享,核心是 CoreTransferable 框架的 Transferable 协议。
主要能力:讲解四种 TransferRepresentation 的选择——CodableRepresentation(模型已符合 Codable,默认 JSON)、DataRepresentation(内存中的自定义二进制格式)、FileRepresentation(磁盘大文件,传文件 URL)、ProxyRepresentation(为不理解自定义类型的接收方提供回退,如导出为 String 或 URL)。支持组合多个表示并按顺序排列(最丰富者在前),可用 exportingCondition 条件隐藏、visibility 控制可见范围、suggestedFileName 提示文件名。
使用方式:类型需实现 static var transferRepresentation。SwiftUI 侧用 .draggable、.dropDestination、.copyable、.pasteDestination、.cuttable、PasteButton 和 ShareLink;自定义 UTType 需在 Swift 中用 UTType(exportedAs:) 声明,并在 Info.plist 的 UTExportedTypeDeclarations 中登记,二者缺一不可。UIKit 侧可用 NSItemProvider.loadTransferable 桥接。
适用场景:应用内或跨应用拖放、剪贴板复制粘贴、分享面板、自定义文件格式交换。
限制与注意:FileRepresentation 接收到的 URL 是临时沙箱扩展,必须在 importing 闭包内复制文件;.copyable、.pasteDestination、.cuttable 仅 macOS 13+,iOS 需用 PasteButton(iOS 16+);跨应用传输需正确声明 UTType;ProxyRepresentation 放在前面会导致接收方拿到降级格式。资料未提供收费、价格或平台支持范围等更多信息。