Swift Foundation 预览版发布


几个月前,Swift 社区宣布将以纯 Swift 形式重写 Foundation 框架,以改善 Swift 的跨平台开发。近日,基于 Swift 重写的 Foundation 发布了首个 Preview 预览版。

Foundation 框架是苹果 macOS 和 iOS 的基础组件支持核心,几乎所有的 Swift 项目都使用 Foundation 框架,其主要包含了大量常用的 API,为许多基本功能提供了一个基础层,也为编写优秀的 Swift 代码奠定了基础。

发布公告写道,此预览版提供了更快、更安全的 Foundation 实现,并且设立了一个新的 Foundation 工作组来协调 Swift 社区的需求和苹果工程的需要。

新 Foundation 构建了许多类型的 Swift 实现,包括 JSONEncoder、Calendar、TimeZone 和 Locale 等,还有一个名为 FoundationICU 的单独软件包,用于在非 Darwin 平台上提供国际化支持。

此外,这个采用 Swift 编写的新实现在 JSON 解码和日期格式化等多方面比之前的 C 和 Objective-C 版本显著提高了性能。

Swift Foundation 为JSONDecoderJSONEncoder提供了全新的 Swift 实现,消除了往返于 Objective-C 集合类型的昂贵往返开销。在 Swift 中紧密集成解析 JSON 以初始化Codable类型也提高了性能。在解析测试数据的基准测试中,解码时间从 200% 提高到近 500%。

开发团队表示质量和性能是他们对该项目最重要的两个目标。因此,2023 年上半年的计划是继续完善核心 API,增加单元和性能测试套件,并尽可能扩展到其他平台,使用 swift-corelibs-foundation 中最相关的代码。

作为次要目标,该项目要求社区提议添加具有重点范围的新 API,以完善 Foundation 中的现有 API 功能。

今年晚些时候,将继续移植其他 Foundation API 的高质量 Swift 实现,例如 URL 、 Bundle 、 FileManager 、 FileHandle 、 Process 、 SortDescriptor 、 SortComparator 等。


相關推薦

2022-12-16

Foundation 框架是苹果 macOS 和 iOS 的基础组件支持核心,几乎所有的 Swift 项目都使用 Foundation 框架,其主要包含了大量常用的 API,为许多基本功能提供了一个基础层,也为编写优秀的 Swift 代码奠定了基础。 swift-corelibs-foundation 项

2023-04-01

用它们的插件。 在使用 5.8 或更高版本的工具的包中,Foundation 不再被隐式导入包清单中。如果使用 Foundation API,则需要明确导入该模块。 SwiftSyntax 随着 SwiftSyntax 的 Swift 5.8 版本的发布,SwiftSyntax 包含一个完全重新编写的解

2023-01-19

OS 和 tvOS ),是开发中不可缺少的组件之一。 它建立在 Foundation URL Loading System 之上,扩展了 Cocoa 中内置的强大的高级网络抽象。它有一个模块化的架构,具有设计良好、功能丰富的 API,使用起来非常方便。 AFNetworking 上一

2023-11-20

:增强对 Compose Multiplatform 的支持,包括常见代码的实时预览和可视化调试工具;项目配置帮助;多平台项目所有部分的统一和增强的调试体验。  为了支持想要与 iOS target 共享代码的开发人员,项目团队将致力于直接从

2022-12-16

值设定项和反初始值设定项的补全语句操作。 意图预览 如果您对快速修复感到不确定或者只是想知道到底什么需要更改,可以在 ⌥Enter 菜单中打开所选快速修复的 Quick Documentation (F1)(快速文档)弹出窗口。 这将激活

2023-06-08

tUI,RealityKit 和 ARKit 三个层级构成。 macOS 14 Sonoma 已发布预览版 交互式小组件 用户可将小组件直接置于桌面之上,并通过访问小组件图库轻松找到工具。 用户在 app 中工作时,小组件会无缝融入墙纸,以便用户全心投入手

2024-10-01

nstall -Dmaven.test.skip=true # cd starter mvn spring-boot:run # # 本地预览 开发者入口: http://127.0.0.1:9003/dev web: http://127.0.0.1:9003/ 管理后台: http://127.0.0.1:9003/admin, 用户名: [email protected], 密码: admin 客服端: http://127.0.0.1:9003/agent, 用户名: admin@email

2022-09-27

题 修复 Image 预览放大后拖拽问题 修复 DataPicker 组件 foundation 中包含 React 相关类型定义问题 @rashagu 修复 Navigation、Tree组件 foundation 在高版本typescript中报错问题 @rashagu 修复受控 Tree 在远程加载数据时展开不成功 

2022-12-11

CentOS,其中最为突出的是两个项目:Rocky Enterprise Software Foundation 赞助的 Rocky Linux;另一个是 AlmaLinux OS Foundation 的 AlmaLinux。  

2024-10-15

nstall -Dmaven.test.skip=true # cd starter mvn spring-boot:run # # 本地预览 开发者入口: http://127.0.0.1:9003/dev web: http://127.0.0.1:9003/ 管理后台: http://127.0.0.1:9003/admin, 用户名: [email protected], 密码: admin 客服端: http://127.0.0.1:9003/agent, 用户名: admin@email

2023-10-28

CentOS,其中最为突出的是两个项目:Rocky Enterprise Software Foundation 赞助的 Rocky Linux;另一个是 AlmaLinux OS Foundation 的 AlmaLinux。 此版本引入了针对容器和虚拟机的新安全特性和运行状况检查选项。此外还提供了支持混合云创新

2023-05-12

CentOS,其中最为突出的是两个项目:Rocky Enterprise Software Foundation 赞助的 Rocky Linux;另一个是 AlmaLinux OS Foundation 的 AlmaLinux。 发布公告写道,AlmaLinux 9.2 为混合云的基础提供了增强功能和新特性,有助于更快、更轻松地为多个

2024-10-09

nstall -Dmaven.test.skip=true # cd starter mvn spring-boot:run # # 本地预览 开发者入口: http://127.0.0.1:9003/dev web: http://127.0.0.1:9003/ 管理后台: http://127.0.0.1:9003/admin, 用户名: [email protected], 密码: admin 客服端: http://127.0.0.1:9003/agent, 用户名: admin@email

2023-11-15

CentOS,其中最为突出的是两个项目:Rocky Enterprise Software Foundation 赞助的 Rocky Linux;另一个是 AlmaLinux OS Foundation 的 AlmaLinux。 公告写道,AlmaLinux 9.3 旨在提高灵活性和可靠性,并增强混合环境中的安全性。该版本继续对自