人类所能犯的最大错误就是拿健康来换取其他身外之物!——叔本华
SwifterSwift 是 500 多个原生 Swift 扩展的集合,为 iOS、macOS、tvOS、watchOS 和 Linux 提供了(超过 500 个)适用于各种原生数据类型、UIKit 和 Cocoa 类的便捷方法、语法糖和性能改进。
SwifterSwift 从 v5 开始兼容 Swift v5.0+
CocoaPods
要使用 CocoaPods 将 SwifterSwift 集成到您的 Xcode 项目,请在您的 Podfile 中设置:
pod 'SwifterSwift'pod 'SwifterSwift/SwiftStdlib'pod 'SwifterSwift/Foundation'pod 'SwifterSwift/UIKit'pod 'SwifterSwift/AppKit'pod 'SwifterSwift/MapKit'pod 'SwifterSwift/CoreGraphics'pod 'SwifterSwift/CoreLocation'pod 'SwifterSwift/SpriteKit'pod 'SwifterSwift/SceneKit'pod 'SwifterSwift/StoreKit'pod 'SwifterSwift/Dispatch'pod 'SwifterSwift/WebKit'pod 'SwifterSwift/HealthKit'Carthage
要使用 Carthage 将 SwifterSwift 集成到您的 Xcode 项目中,请在您的 Cartfile 中设置:
github "SwifterSwift/SwifterSwift" ~> 6.0Swift 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。
手动
将 SwifterSwift 文件夹添加到您的 Xcode 项目以使用所有扩展或特定扩展。
对于您的 test targets,您还可以添加 XCTest 文件夹。
SwiftStdlib 扩展
Array extensionsBidirectionalCollection extensionsBinaryFloatingPoint extensionsBool extensionsCharacter extensionsCollection extensionsComparable extensionsDecodableExtensions extensionsDefaultStringInterpolationExtensions extensionsDictionary extensionsDouble extensionsFloat extensionsFloatingPoint extensionsInt extensionsOptional extensionsRangeReplaceableCollection extensionsSequence extensionsSignedInteger extensionsSignedNumeric extensionsString extensionsStringProtocol extensionsFoundation 扩展
Calendar extensionsData extensionsDate extensionsFileManager extensionsLocale extensionsMeasurement extensionsNSAttributedString extensionsNSPredicate extensionsURL extensionsURLRequest extensionsUserDefaults extensionsUIKit 扩展
UIActivity extensionsUIAlertController extensionsUIApplication extensionsUIBarButtonItem extensionsUIButton extensionsUICollectionView extensionsUIColor extensionsUIDatePicker extensionsUIEdgeInsets extensionsUIFont extensionsUIGestureRecognizer extensionsUIImage extensionsUIImageView extensionsUILabel extensionsUILayoutPriority extensionsUINavigationBar extensionsUINavigationController extensionsUINavigationItem extensionsUIRefreshControl extensionsUIScrollView extensionsUISearchBar extensionsUISegmentedControl extensionsUISlider extensionsUIStackView extensionsUIStoryboard extensionsUISwitch extensionsUITabBar extensionsUITableView extensionsUITextField extensionsUITextView extensionsUIViewController extensionsUIView extensionsUIWindow extensionsAppKit 扩展
CoreGraphics 扩展
CGColor extensionsCGFloat extensionsCGPoint extensionsCGSize extensionsCGRect extensionsCGVector extensionsCoreLocation 扩展
CoreAnimation 扩展
MapKit 扩展
SpriteKit 扩展
SceneKit 扩展
SCNBox extensionsSCNCone extensionsSCNCapsule extensionsSCNCylinder extensionsSCNGeometry extensionsSCNMaterial extensionsSCNPlane extensionsSCNShape extensionsSCNSphere extensionsSCNVector3 extensionsStoreKit 扩展
Dispatch 扩展
WebKit 扩展
HealthKit 扩展
XCTest 扩展
SwifterSwift 是一个包含 500 多个属性和方法的库,旨在扩展 Swift 的功能和生产力,并忠实于原生的 Swift API 设计指南。
查看项目中的 Examples.playground 以获取一些很酷的示例!
所有扩展的文档和示例都在 swifterswift.com/docs
我们希望得到您的反馈。参与前请参阅 contributing guidelines。
使用 SwifterSwift 与其他人交谈并交流经验总是很愉快,所以加入我们的 Slack 频道吧。
特别感谢:
SwifterSwift 在 MIT 许可协议下发布的。有关更多信息,请参阅 LICENSE。