Swift核心库
Swift核心库项目提供相较于标准库更加表层的功能, 这些库提供在所有Swift平台上都可以使用的强大工具. 核心库旨在在以下重要方面提供稳定且实用的功能.
- 常用的类型, 包括 数据(data), URL, 字符集(character sets)与 specialized collections
- 单元测试
- Networking primitives
- Scheduling and execution of work, 包括 多线程, 队列与提醒
- Persistence, including property lists, archives, JSON 解析与XML 解析
- 对日期时间计算的支持
- 对系统特性的抽象
- 与文件系统的交互
- 国际化, 包括日期、数字格式化与语言文件(anguage-specific resources)
- 用户偏好设置
项目状态
核心库是未来的Swift 3释放版的一部分. 目前还没准备好在产品中使用. 事实上, 它仍处于开发的早期阶段. 我们决定将核心库作为最初开放的源代码中的一部分以便于从开始阶段就与社区协同工作. 邮件列表页面(the mailing list page)有关于如何加入协作的细节.
从头开始编写所有这些功能是一项巨大的工程, 因此我们决定通过利用已经完成的工作来快速开始核心库项目. 特别是重用三个现存的库(Foundation
, libdispatch
, XCTest
.)中的API以及尽可能多的实现(implementation).
Foundation
Foundation框架定义了一个几乎所有App都需要的基本功能(a base layer of functionality). 它提供了语言本身与运行时没有提供的简单类并引入了一些定义了功能的规范. 它有以下的目标:
- 提供一个小型的公共类集合
- 通过引入约定来让软件开发变得容易
- 对国际化与本地化进行支持来使软件可以被世界各地的用户使用
- 提供依赖操作系统的级别来增强可移植性
更多关于Foundation框架的信息见此: from Apple’s documentation. Swift.org版本的Foundation框架利用了许多相同的底层库(例如ICU与CoreFoundation)作为苹果的实现,但是完全独立与Objective-C运行时因此它是一个对相同API的大部分的重实现. 将纯粹的Swift代码覆盖在底层库之上. 更多信息见此: GitHub project page.
****GitHub上一段Foundation示例:
使用Foundation
这是一个使用了Foundation的简单的main.swift文件. 本教程假设已经安装了最新版本的Swift发行版.
import Foundation // 创建一个URLComponents实例 let swifty = NSURLComponents(string: "https://swift.org")! // 输出一些信息 print("\(swifty.host!)") // Output: "swift.org"
****
libdispatch
Grand Central Dispatch (GCD 或 libdispatch) 提供了对多核硬件的全面支持.
libdispatch目前可以在所有的Darwin平台上使用. 该项目的目标是提供所有Swift平台上都可使用的现代版本的libdispatch. 为了实现这个目标, 我们将会使用现有的开源C语言实现来尽可能多地实现API的可移植子集(portable subset).
更多linux版本的libdispatch的信息见此: GitHub project page.
XCTest
XCTest库提供一个为Swift包(Swift packages)与SwiftApp设计的通用的Swift单元测试框架.
此版本的XCTest 使用了你熟悉的来自Xcode的与XCTest相同的API. 我们的目标是使你在不用重写代码就可以在所有的Swift平台上运行项目的测试.
更多linux版本的XCTest的信息见此: GitHub project page.
****
该文章主要为译者作个人参考之用, 语言不是十分流畅, 欢迎在此方面提出意见。同时由于译者水平有限, 文章中也许有疏漏与不妥之处, 也欢迎指正。
****