SwifterSwift 是一个包含 500 多个原生 Swift 扩展 的集合,适用于各种原始数据类型、UIKit 和 Cocoa 类的 handy 方法、语法糖和性能改进——iOS、macOS、tvOS、watchOS 和 Linux 都有超过 500 个扩展,在 1 个库中。
v5.2 中的新增功能
要求
- iOS 10.0+ / tvOS 9.0+ / watchOS 2.0+ / macOS 10.10+ / Ubuntu 14.04+
- Swift 5.0+
想为 Swift 旧版本使用 SwifterSwift
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'
Carthage
要使用 Carthage 将 SwifterSwift 集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "SwifterSwift/SwifterSwift" ~> 5.2
Swift 包管理器
您可以通过向您的 Package.swift
文件添加适当的描述来使用 Swift 包管理器 安装 SwifterSwift
import PackageDescription
let package = Package(
name: "YOUR_PROJECT_NAME",
targets: [],
dependencies: [
.package(url: "https://github.com/SwifterSwift/SwifterSwift.git", from: "5.2.0")
]
)
接下来,将 SwifterSwift
添加到您的目标的依赖项中,如下所示
.target(
name: "YOUR_TARGET_NAME",
dependencies: [
"SwifterSwift",
]
),
然后运行 swift package update
。
请注意,Swift 包管理器不支持构建iOS/tvOS/macOS/watchOS应用程序——请参见下节中的Accio。
Accio
Accio 是一个基于SwiftPM的依赖管理器,可以为iOS/macOS/tvOS/watchOS构建框架。因此,集成步骤与上面描述的完全相同。一旦您的Package.swift
文件配置完毕,您需要运行accio update
而不是swift package update
。
所有扩展列表
SwiftStdlib 扩展
Foundation 扩展
UIKit 扩展
UIActivity 扩展
UIAlertController 扩展
UIApplication 扩展
UIBarButtonItem 扩展
UIButton 扩展
UICollectionView 扩展
UIColor 扩展
UIDatePicker 扩展
UIEdgeInsets 扩展
UIFont 扩展
UIGestureRecognizer 扩展
UIImage 扩展
UIImageView 扩展
UILabel 扩展
UILayoutPriority 扩展
UINavigationBar 扩展
UINavigationController 扩展
UINavigationItem 扩展
UIRefreshControl 扩展
UIScrollView 扩展
UISearchBar 扩展
UISegmentedControl 扩展
UISlider 扩展
UIStackView 扩展
UIStoryboard 扩展
UISwitch 扩展
UITabBar 扩展
UITableView 扩展
UITextField 扩展
UITextView 扩展
UIViewController 扩展
UIView 扩展
UIWindow 扩展
SceneKit 扩展
这个有多酷?
SwifterSwift是一个包含超过500个属性和方法的库,旨在扩展Swift的功能和生产力,同时忠实地遵循原始Swift API设计指南。
请查看项目中的Examples.playground来获取一些示例!
文档
所有扩展的文档和示例可以在swifterswift.com/docs找到。
参与
我们希望得到您的反馈。在参与之前,请参考贡献指南。
Slack频道:
与其他使用SwifterSwift的人交流并分享经验总是让人感到很高兴,所以请加入我们的Slack频道。
感谢
特别感谢
- Steven Deutsch、Luciano Almeida和Guy Kogus对扩展、文档和测试的最新贡献。
- Paweł Urbanek为添加tvOS、watchOS、macOS初始支持并帮助扩展开发。
- Mert Akengin和Bashar Ghadanfar为设计项目网站和标志。
- Abdul Rahman Dabbour帮助编写项目文档。
- 感谢所有其他贡献者为这个项目做出的贡献。
许可协议
SwifterSwift基于MIT许可协议发布。更多信息请参阅LICENSE。