在 WWDC 2022 和其他有趣的公告中,Apple 在 Swift 中展示了一个名为Transferable的新协议。简而言之,Transferable 使得在同一应用程序内的不同位置甚至不同应用程序之间复制数据变得非常简单和绝对直接。而当谈到复制时,这不仅包括复制和粘贴,还包括拖放。
在 Transferable 可用之前,必须执行一系列特定步骤才能如上所述传输数据。特别是对于自定义类型,必须采用特定协议并实现一些必需的方法,以便序列化和反序列化、与项目提供者及其包含的数据一起工作等等。然而,所有相关细节在这里都没有多大意义,因为主题是所有这些的演变,Transferable 协议。对于所有这些工作的人来说,Transferable 绝对是游戏规则的改变者。
使用 Transferable,复制或拖放以下内容几乎不需要任何努力:
- 符合 Codable 协议的自定义类型的对象
- Data
- Files
但是请注意,Transferable 在引入之前不受任何操作系统的支持;启用复制粘贴或拖放它们仍然需要求助于以前的编程技术。换句话说,Transferable 可以在 iOS 16+、macOS 13+(Ventura 及更新版本)、watchOS 9.0+ 和 tvOS 16+ 中使用。
这篇文章重点介绍如何使用 Transferable 拖放源自符合 Co