SafeURL

一个用于避免使用可能返回 nil 的 URL(string:) 初始化方法的工具,它引入了编译时的 URL 有效性检查。请注意,这并不会检查网站的可用性,而是检查 URL 的格式是否正确。

安装

Swift 包管理器 (Swift Package Manager)

Swift 包管理器是一个用于自动化 Swift 代码分发的工具,并且已集成到 swift 编译器中。

一旦你设置好了你的 Swift 包,添加 SafeURL 作为依赖项就像将其添加到你的 Package.swift 文件的 dependencies 值一样简单。

dependencies: [
    .package(url: "https://github.com/baguio/SwiftSafeURL")
],
targets: [
    .target(
        name: "<MyTargetName>",
        dependencies: ["SafeURL"],
        plugins: ["SafeURLPlugin"]
    ),
]

示例

// This will compile
let validUrl = URL(safeString: "https://example.tld")
// This won't
let invalidUrl = URL(safeString: "https://example./tld")

SafeURL 要求它的参数是一个简单的字符串字面量

如果一个文件包含注释 // safeurl:warn,该文件中无效的 URL 将会被编译,并且会显示一个警告而不是错误。请注意,不建议这样做,因为这仍然会在运行时导致强制停止。