URLCompatibilityKit 是一个轻量级的 Swift 包,它为 URL 添加了常用类型属性、类型和实例属性的兼容性向后移植,这些属性仅在 iOS 16.0+ / macOS 13.0+ / tvOS 16.0+ / watchOS 9.0+ 版本中可用。
避免在代码中使用条件编译指令!
| 没有 URLCompatibilityKit | 使用 URLCompatibilityKit |
|---|---|
let fileURL: URL
if #available(iOS 16.0, *) {
fileURL = URL
.documentsDirectory
.appending(path: "myfile")
} else {
fileURL = try FileManager.default
.url(
for: .documentDirectory,
in: .userDomainMask,
appropriateFor: nil,
create: false
)
.appendingPathComponent(
"myfile", isDirectory: false
)
}
|
import URLCompatibilityKit
let fileURL = URL
.documentsDirectory
.appending(path: "myfile")
|
它目前包含以下 API 的向后兼容版本
类型属性
URL.applicationDirectoryURL.applicationSupportDirectoryURL.cachesDirectoryURL.desktopDirectoryURL.documentsDirectoryURL.downloadsDirectoryURL.homeDirectoryURL.libraryDirectoryURL.moviesDirectoryURL.musicDirectoryURL.picturesDirectoryURL.sharedPublicDirectoryURL.temporaryDirectoryURL.trashDirectoryURL.userDirectory类型方法
URL.currentDirectory() -> URLhomeDirectory(forUser: String) -> URL?实例方法
append(path:) // 相当于使用 URL.DirectoryHint = .inferFromPathappending(path:) // 相当于使用 URL.DirectoryHint = .inferFromPath一旦你准备好将 iOS 16 作为你的最低部署目标,你可以安全地从你的项目中取消链接 URLCompatibilityKit,而无需对你的代码库进行任何额外的更改(除了删除所有 import URLCompatibilityKit 语句)。
当集成到基于 iOS 16 的项目中时,URLCompatibilityKit 将其添加的 API 标记为过时或已弃用,因此一旦你可以直接使用匹配的系统 API,你将收到不再需要它的提醒。
URLCompatibilityKit 使用 Swift Package Manager 分发。 要安装它,请使用 Xcode 的 File > Add Packages... 菜单命令将其添加到您的 iOS 应用程序项目中。
然后在任何你想使用它的地方导入 URLCompatibilityKit
import URLCompatibilityKit