ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SwiftDate 信息与安装指南:环境要求、单元测试与 CocoaPods/Carthage/SwiftPM 集成

SwiftDate 信息与安装指南:环境要求、单元测试与 CocoaPods/Carthage/SwiftPM 集成 移动开发【免费下载链接】SwiftDate Toolkit to parse, validate, manipulate, compare and display dates, time timezones in Swift.项目地址https://gitcode.com/gh_mirrors/sw/SwiftDate点击查看免费下载本文是 SwiftDate 开源日期工具库的信息与安装实战指南对应仓库中 Documentation/0.Informations.md 一章的内容。你将了解到 SwiftDate 的版本兼容性与平台要求、约 90% 代码覆盖率的单元测试体系、Linux 平台支持的现状与限制以及通过 CocoaPods、Carthage、Swift Package Manager 三种主流方式将 SwiftDate 集成进自己项目中的完整步骤同时掌握其沟通渠道与 MIT 开源许可的边界。文档定位整个指南的起点在 Documentation/Index.md 的文档索引中本章编号为0是全套 SwiftDate 文档1. Introduction、2. Date Parsing、3. Date Manipulation、4. Compare Dates、5. Date Formatting、6. TimeInterval Formatting 等的入口在深入 API 之前你需要先确认能不能用、怎么装、如何验证。索引中标注的参考版本为6.3.0最后更新于 2020 年 11 月而仓库中的 SwiftDate.podspec 当前版本号为7.0.0——阅读时请以你所拉取的 tag 为准。Methods DocumentationOptionClick 即可查阅的完整 API 文档SwiftDate 的所有方法methods与变量variables都已按 Apple SDK 的标准写入了完整的文档注释doc comments在 Xcode 中按住 Option 并点击任意 API即可弹出说明面板内容包括该方法/变量的作用输入参数input parameters的含义返回值output parameters的说明。这一点可以在源码中得到印证例如 DateCompare.swift 中的compareCloseTo(_:precision:)就带有完整的///注释块说明了precision参数的默认值300 秒即 5 分钟与返回语义。此外README 中提到的 Jazzy 文档也为整库提供了逐方法的离线参考。官方文档同时声明如果你觉得任何文档注释含糊不清或具有误导性请直接提交 issue维护者会跟进修复——这是参与文档质量改进的入口。Unit Tests约 90% 代码覆盖率的测试体系SwiftDate 对库中所有主要类都执行了单元测试unit tests作为质量保证手段代码覆盖率约为90%。测试代码位于仓库顶层的 Tests/SwiftDateTests 目录下按功能模块拆分为多个文件测试文件覆盖模块TestDate.swift基础Date扩展TestDateInRegion.swiftDateInRegion核心行为TestDateInRegionCompare.swift日期比较含粒度比较、范围判断TestDateInRegionComponents.swift日期组件提取TestDateInRegionCreate.swift日期创建含随机日期、枚举TestDateInRegionMath.swift日期数学运算截断、四舍五入TestFormatters.swift各格式化器ISO8601、.NET、RSS、SQL、相对时间等TestRegion.swiftRegion构造TestSwiftDate.swift全局自动解析格式列表例如 TestSwiftDate.swift 的testAutoFormats会验证内置自动解析格式非空、允许替换为自定义格式列表、并可通过SwiftDate.resetAutoFormats()恢复默认同文件中的testUTCZone则验证2020-03-13T05:40:48.000Z这类带Z后缀的 ISO8601 字符串能被正确识别为 UTC 时区。这些测试也揭示了 SwiftDate.swift 中SwiftDate.autoFormats与resetAutoFormats()的全局行为解析格式是有序列表按顺序尝试匹配。如果你发现某个测试用例不完整官方同样欢迎你提交 issue 协助补全。Linux CompatibilityLinux 上的编译支持与已知限制自SwiftDate 5.0.13起SwiftDate 已能在 Linux 环境下配合最新的 Swift 4.2 snapshot 成功编译文档最后更新于 2018-10-28。但需要注意一个已知的潜在问题Calendar 的compare(to:granularity:)方法在 Linux 上可能存在行为差异涉及 Swift 官方 issue SR-9101 及项目 issue #596。如果你在 Linux 上依赖按粒度比较日期的能力建议先行验证。从当前仓库源码看Linux 支持仍然是一等公民仓库保留了 Tests/LinuxMain.swift它通过XCTMain注册了 9 组测试用例TestDateInRegion、TestDateInRegion_Compare、TestDateInRegion_Components、TestDateInRegion_Create、TestDateInRegion_Langs、TestDateInRegion_Math、TestFormatters、TestRegion、TestSwiftDate确保swift test能在 Linux 上执行全部测试。这份清单并非手写而是由仓库根目录的 generateLinuxTests.sh 借助 Sourcerysourcery --sources Tests --templates .sourcery/LinuxMain.stencil --output .sourcery --force-parse generated自动生成后移动到Tests/LinuxMain.swift——因此新增测试类时重新运行该脚本即可同步 Linux 入口。Requirements版本与平台兼容性SwiftDate 5.x 官方声明兼容Swift 4.x支持平台如下对应 5.x 时代的原始要求iOS 9macOS 10.10watchOS 2.0tvOS 10.0任何支持 Swift 4 的 Linux 发行版请注意版本差异当前仓库已演进到更高的最低部署目标这一事实可直接从两个清单文件确认Package.swiftswift-tools-version:5.5声明平台为.macOS(.v10_15)、.iOS(.v13)、.watchOS(.v6)、.tvOS(.v13)SwiftDate.podspec 声明ios.deployment_target 13.0、osx 10.15、watchos 6.0、tvos 13.0且swift_versions [5.5]。因此若你使用 5.x 版本按原文档的宽松要求即可若使用当前仓库版本7.0.0则至少需要 Swift 5.5 与上述各平台的最低系统版本。该 podspec 还标明依赖仅为系统Foundation框架即 SwiftDate 无任何第三方运行时依赖集成成本很低。Installation三种主流的包管理器集成方式CocoaPodsCocoaPods 是 Cocoa 项目的依赖管理器可通过 RubyGems 安装$ gem install cocoapods构建 SwiftDate 需要CocoaPods 1.1。在项目根目录的Podfile中声明依赖以下为可复制的完整写法平台版本可按需调整platform :ios, 10.0 use_frameworks! target Your Target Name do pod SwiftDate, ~ 5.0 end然后执行安装$ pod install完成后使用生成的.xcworkspace打开项目即可import SwiftDate。CarthageCarthage 是去中心化的依赖管理器会自行构建依赖并提供二进制 framework。可通过 Homebrew 安装$ brew update $ brew install carthage在项目根目录的Cartfile中声明依赖版本号请以你所使用的仓库 tag 为准当前仓库 podspec 版本为 7.0.0github malcommac/SwiftDate ~ 6.0随后运行$ carthage update将构建出的SwiftDate.framework拖入 Xcode 项目即可使用。Swift Package ManagerSwift Package Manager 已集成进swift编译器适用于 Apple 平台及 Linux/服务端场景如 Vapor、Kitura 等项目。在你的Package.swift的dependencies中加入 SwiftDate 即可dependencies: [ .package(url: https://github.com/malcommac/SwiftDate.git, from: 5.0.0) ]若要从当前仓库镜像安装可先克隆仓库$ git clone https://gitcode.com/gh_mirrors/sw/SwiftDate.git然后在依赖声明中将 URL 指向你的克隆地址。配置完成后在库工程目录执行swift build编译、swift test运行测试或在 Xcode 中通过File → Add Packages按 URL 添加依赖。仓库自身的 Package.swift 可作为参考它声明了SwiftDate库产品、无外部依赖并将相对语言资源目录Formatters/RelativeFormatter/langs与Resources打包进框架同时把SwiftDateTests作为测试目标挂接。Future Plans5.5 路线图官方文档记载的 SwiftDate 5.5 计划包含两项且均已标记完成[x]100% 代码覆盖率对 Recurrences重复规则rrule的支持。此外官方欢迎任何其他功能建议——对库的未来演进有想法时可通过 issue 提出。Communication提问、反馈与贡献渠道官方文档给出的沟通约定如下需要帮助时可在 Stack Overflow 使用swiftdate标签提问想提出一般性问题同样使用 Stack Overflow 的swiftdate标签发现 bug请提交 issue有功能需求请提交 issue想贡献代码请提交 pull request。LicenseMIT 开源许可SwiftDate 以MIT License发布。版权归 Daniele MarguttiCopyright (c) 2018所有完整许可文本见仓库根目录的 LICENSE。该许可允许任何人免费获得本软件副本并自由使用、复制、修改、合并、出版、分发、再许可及/或销售副本唯一义务是在所有副本或实质性部分中保留上述版权声明与本许可声明软件按原样提供不附带任何明示或默示的担保包括但不限于适销性、特定用途适用性及非侵权担保作者与版权持有人不对任何索赔、损害或其他责任负责。小结SwiftDate 的信息与安装一章为开发者划定了清晰的准入门槛约 90% 覆盖率的测试体系保障了 API 质量OptionClick 即可查阅的文档注释降低了学习成本Linux 支持含一个已知的compare(to:granularity:)注意事项覆盖了服务端场景而 CocoaPods、Carthage 与 SwiftPM 三条安装路径让任何类型的 Swift 工程都能快速集成。确认好你所用版本的平台与 Swift 版本要求后就可以进入 1. Introduction 学习Region、DateInRegion等核心概念或直接翻阅 2. Date Parsing 开始实战。赞分享移动开发【免费下载链接】SwiftDate Toolkit to parse, validate, manipulate, compare and display dates, time timezones in Swift.项目地址https://gitcode.com/gh_mirrors/sw/SwiftDate点击查看免费下载相关推荐HanekeSwift终极安装指南CocoaPods、Carthage与SwiftPM全攻略HanekeSwift终极安装指南CocoaPods、Carthage与SwiftPM全攻略 HanekeSwift是一款专为iOS和tvOS打造的轻量级通用移动开发Realm Swift SDK 安装指南SwiftPM、CocoaPods、Carthage 全流程与工程配置要点Realm Swift SDK 安装指南SwiftPM、CocoaPods、Carthage 全流程与工程配置要点 本篇指南围绕 realm swift 仓库数据库移动开发嵌入式数据库TextureAsyncDisplayKitiOS 集成指南CocoaPods 与 Carthage 完整安装与踩坑要点TextureAsyncDisplayKitiOS 集成指南CocoaPods 与 Carthage 完整安装与踩坑要点 导读本文是 Texture原移动开发UI组件上一篇Online Accounting Software集成测试方案API与前端交互测试下一篇专业文档设计如何用Morisawa BIZ UDGothic开源字体提升商务形象10倍创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表