2024-11-16
人类所能犯的最大错误就是拿健康来换取其他身外之物!——叔本华
SwifterSwift 是 500 多个原生 Swift 扩展的集合,为 iOS、macOS、tvOS、watchOS 和 Linux 提供了(超过 500 个)适用于各种原生数据类型、UIKit 和 Cocoa 类的便捷方法、语法糖和性能改进。
v6.0 有什么新功能?
要求
- iOS 12.0+ / tvOS 12.0+ / watchOS 4.0+ / macOS 10.13+ / Ubuntu 14.04+
- Swift 5.6+
希望将 SwifterSwift 用于旧版本的 Swift
SwifterSwift 从 v5 开始兼容 Swift v5.0+
安装
CocoaPods
要使用 CocoaPods 将 SwifterSwift 集成到您的 Xcode 项目,请在您的 Podfile
中设置:
- 集成所有扩展(推荐):
pod 'SwifterSwift'
- 仅集成 SwiftStdlib 扩展:
pod 'SwifterSwift/SwiftStdlib'
- 仅集成 Foundation 扩展:
pod 'SwifterSwift/Foundation'
- 仅集成 UIKit 扩展:
pod 'SwifterSwift/UIKit'
- 仅集成 AppKit 扩展:
pod 'SwifterSwift/AppKit'
- 仅集成 MapKit 扩展:
pod 'SwifterSwift/MapKit'
- 仅集成 CoreGraphics 扩展:
pod 'SwifterSwift/CoreGraphics'
- 仅集成 CoreLocation 扩展:
pod 'SwifterSwift/CoreLocation'
- 仅集成 SpriteKit 扩展:
pod 'SwifterSwift/SpriteKit'
- 仅集成 SceneKit 扩展:
pod 'SwifterSwift/SceneKit'
- 仅集成 StoreKit 扩展:
pod 'SwifterSwift/StoreKit'
- 仅集成 Dispatch 扩展:
pod 'SwifterSwift/Dispatch'
- 仅集成 WebKit 扩展:
pod 'SwifterSwift/WebKit'
- 仅集成 HealthKit 扩展:
pod 'SwifterSwift/HealthKit'
Carthage
要使用 Carthage 将 SwifterSwift 集成到您的 Xcode 项目中,请在您的 Cartfile
中设置:
github "SwifterSwift/SwifterSwift" ~> 6.0
Swift Package Manager
你可以使用 The Swift Package Manager 来安装 SwifterSwift,请在你的 Package.swift
文件中添加正确的描述:
import PackageDescription
let package = Package(
name: "YOUR_PROJECT_NAME",
targets: [],
dependencies: [
.package(url: "https://github.com/SwifterSwift/SwifterSwift.git", from: "6.0.0")
]
)
接下来,将 SwifterSwift
添加到您的 targets 依赖项中,如下所示:
.target(
name: "YOUR_TARGET_NAME",
dependencies: [
"SwifterSwift",
]
),
然后运行 swift package update
。
请注意,Swift Package Manager 不支持为 iOS/tvOS/macOS/watchOS 应用程序编译 - 请参阅下一节中的 Accio。
Accio
Accio 是一个基于 SwiftPM 的依赖管理器,可以为 iOS/macOS/tvOS/watchOS 构建框架。因此,集成步骤与上述完全相同。一旦你的 Package.swift
文件被配置,你需要运行 accio update
而不是 swift package update
。
所有扩展列表
SwiftStdlib 扩展
Array extensions
BidirectionalCollection extensions
BinaryFloatingPoint extensions
Bool extensions
Character extensions
Collection extensions
Comparable extensions
DecodableExtensions extensions
DefaultStringInterpolationExtensions extensions
Dictionary extensions
Double extensions
Float extensions
FloatingPoint extensions
Int extensions
Optional extensions
RangeReplaceableCollection extensions
Sequence extensions
SignedInteger extensions
SignedNumeric extensions
String extensions
StringProtocol extensions
Foundation 扩展
UIKit 扩展
UIActivity extensions
UIAlertController extensions
UIApplication extensions
UIBarButtonItem extensions
UIButton extensions
UICollectionView extensions
UIColor extensions
UIDatePicker extensions
UIEdgeInsets extensions
UIFont extensions
UIGestureRecognizer extensions
UIImage extensions
UIImageView extensions
UILabel extensions
UILayoutPriority extensions
UINavigationBar extensions
UINavigationController extensions
UINavigationItem extensions
UIRefreshControl extensions
UIScrollView extensions
UISearchBar extensions
UISegmentedControl extensions
UISlider extensions
UIStackView extensions
UIStoryboard extensions
UISwitch extensions
UITabBar extensions
UITableView extensions
UITextField extensions
UITextView extensions
UIViewController extensions
UIView extensions
UIWindow extensions
CoreGraphics 扩展
CoreLocation 扩展
CoreAnimation 扩展
MapKit 扩展
SpriteKit 扩展
SceneKit 扩展
StoreKit 扩展
Dispatch 扩展
WebKit 扩展
HealthKit 扩展
XCTest 扩展
这有多酷?
SwifterSwift 是一个包含 500 多个属性和方法的库,旨在扩展 Swift 的功能和生产力,并忠实于原生的 Swift API 设计指南。
查看项目中的 Examples.playground 以获取一些很酷的示例!
文档
所有扩展的文档和示例都在 swifterswift.com/docs
参与其中
我们希望得到您的反馈。参与前请参阅 contributing guidelines。
Slack 频道:
使用 SwifterSwift 与其他人交谈并交流经验总是很愉快,所以加入我们的 Slack 频道吧。
鸣谢
特别感谢:
- Steven Deutsch, Luciano Almeida 和 Guy Kogus 对扩展、文档和测试的最新贡献。
- Paweł Urbanek 添加了 tvOS、watchOS 和 macOS 的初始化支持和帮助扩展。
- Mert Akengin 和 Bashar Ghadanfar 设计了 project website 和 logo.
- 非常感谢这个项目的所有其他贡献者。
License 协议
SwifterSwift 在 MIT 许可协议下发布的。有关更多信息,请参阅 LICENSE。