一套旨在简化 Swift 中基本和重复性任务的实用工具。
本仓库是一个 Xcode 项目,包含一套通用的(这才是“通用”的真正含义;不仅仅是使用泛型)工具,可应用于为 iOS、iPadOS、MacOS、WatchOS 和 TVOS 部署的 Swift 项目。
这些工具适用于所有这些平台,并且最多只依赖于 Foundation 库 和 Core Graphics 类型(在 Core Foundation 库中)。
这是一个高性能的通用 FIFO 队列数据结构。它基于 Ole Begemann 的工作,他在他的 Advanced Swift 书中将其作为一个例子使用。
这是一个简单的协议,为符合它的类和结构体提供一些基本的 Sequence 行为。
这是一个简单的弱引用可哈希容器,它允许我们拥有弱引用集合(通常,集合中的成员资格会创建一个强链接)。
这是一组用于辅助调试和测试代码的工具。
整数数据类型的扩展,以及浮点数和双精度数的一些角度/弧度转换。
对 Foundation Bundle 的扩展。
对 StringProtocol 协议的扩展。这些主要是解析、过滤和转换功能。
对 StringProtocol 协议的扩展。这增加了一些重要的功能,例如 MD5/SHA 哈希、子字符串搜索、简单的本地化和基本解析。
向 CGFloat 添加角度/弧度转换。
向 CGPoint 添加旋转支持。
您可以使用 SPM 将项目作为依赖项加载,方法是引用其 GitHub 仓库 URI(SSH:git@github.com:RiftValleySoftware/RVS_Generic_Swift_Toolbox.git,或 HTTPS:https://github.com/RiftValleySoftware/RVS_Generic_Swift_Toolbox.git)。
将依赖项附加后,您可以通过向使用该软件包的文件添加导入来引用它
import RVS_Generic_Swift_Toolbox
所有扩展和实用工具都将可用。
Carthage 可能是使用这些工具“开销最低”的方式。它非常易于使用,并且非常干净。您只需在项目中包含对文件的引用即可。您可以通过在 Cartfile 中添加以下行来实现它
`github "RiftValleySoftware/RVS_Generic_Swift_Toolbox"`
完成此操作后,将终端导航到包含 Cartfile 的目录,并执行
`carthage update`
这将导致一个与 Cartfile 同级的目录,名为 Carthage
。在该目录内部,将是另一个目录,名为 Checkouts
。在该目录内部,将是一个名为 RVS_Generic_Swift_Toolbox
的目录。您要查找的文件将位于 Sources/RVS_Generic_Swift_Toolbox
目录中。它们按照上面记录的分组排列。
只需将这些文件拖到您的 Xcode 项目中,并将它们添加到适当的目标即可。
如果您选择使用构建产品,请注意 Carthage 构建可能并非总是签名模块,因此您可能会在提交到 App Store 时遇到问题。
您也可以直接将项目作为 Git 子模块包含进来。子模块可能使用起来很麻烦,但却是维护铁定版本完整性的好方法。如果您这样做,那么您应该执行与上面相同的操作,但不是 Carthage 目录,您将拥有您选择用于放置子模块的任何目录。
这些实用工具需要 Swift 编程语言,以及 Foundation 库(它还使用了 Core Foundation 库,由于某种原因,在 iOS 中它是被单独对待的)。
注意: 由于访问 主 bundle 在
XCTest
中的复杂性,localizedVariant
和accessibilityLocalizedVariant
计算属性未在自动测试中涵盖。 这没关系,因为它们被我编写的每个项目使用,因此它们接受大量测试。
© 版权所有 2019-2024,The Great Rift Valley Software Company
特此授予许可,对任何人免费授予复制本软件和相关文档文件(“软件”)的许可,以不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向被提供本软件的人员这样做,但须符合以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性、特定用途的适用性和不侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由软件或软件的使用或其他交易引起、产生或与之相关。