前言

译者言:周日立冬,北方多地迎来 2021 年的第一场雪,上海也降下大雨,此时你所在的城市降温了吗?记得添衣保暖,避免感冒生病影响工作和生活。

Xcode 13.2 Beta 版已具备并发支持,该特性将有助于解决很多 Swift 开发者的某些痛点。或许 Swift 内置的并发系统最重要的好处是,它允许以更简单的方式,并行执行多异步任务。可以想像,通过增加执行任务的速度这将节省我们更多时间。

Kristaps Grinbergs Swift 周报负责人在本期周报中公开自己将不再领导 Swift 周报项目,原文如下:

我非常高兴地编写这么优秀并且已经运营了三年的 Swift 新闻周报。我遇到了很多了不起的人,并且感谢你们所有人,我已经收获了很多! 这是为什么打出下面这句话,让我感慨万千的原因。第 200 期周报将是我运营的最后一期。我已经决定不再领导这个项目,并且怀着愉悦的兴奋,我正在寻找愿意继续管理 Swift 周报的人。

为了 Swift 社区周报持续稳定的发布更新,我们希望邀请 Swift 爱好者参与周报编辑,同时邀请赞助商对我们平台赞助支持。

入门任务

SR-15408 [Swift-DocC] 用含有空格的回调显示名称构建文档会产生一篇无法阅读的文章

译者注: 如果将带有空格的回调显示名称(如 --fallback-display-name “My Display Name”)以及有效的符号图传递给 DocC,DocC 会生成一篇以“我的显示名称”作为 H1 的文章标题并将其组织在顶级框架页面上的“文章”主题组下。

新闻和社区

新的 Xcode 13.2 Beta 增加了对 macOS 10.15、iOS 13、tvOS 13 和 watchOS 6 或更高版本的 Swift 并发支持。 这种支持包括async/await、actor、全局 actor,结构化的并发及其任务 API。

Tim Condon 发布了 Vapor 已经支持 async/await

Konrad ktoso Malawski 写了一篇介绍 Swift Distributed Actors 的文章。

Marc Aupont 将加入 Diversity in Swift 工作组。

Swift 下载链接已移至新位置以提供更快的下载速度! 工具链将托管在 download.swift.org,它将使用与当前 URL 类似的模式。 要使用新 URL,请将 swift.org/builds/ 替换为 download.swift.org/。 从 2021 年 10 月 26 日开始,swift.org/builds URL 已重定向到新的子域。

Sarun Wongpatcharapakorn 写了一篇博文解释 Swift 中的 KeyPath。

Commits 和 pull requests

Erik Eckstein 合并了一个 pull request,该请求实现了性能注释的原型,如 Swift 中的 @_noLocks@_noAllocation

Slava Pestov 合并了一个 pull request,该请求改进了对“身份一致性”的处理 [P].[P] => [P]。

John McCall 合并了一个 pull request,该请求修复了高度对齐的结果类型的未来片段的对齐方式

同意的提案

SE-0325 附加包插件 API 提案已被修改并同意。

正在审查的提案

SE-0326: 多语句闭包参数/结果类型推断正在审查中.

Kristaps Grinbergs 建议通过启用闭包体的参数和结果类型推断,来改进多语句闭包推断行为。 这将令类型推断更符合开发者的预期,并且移除现存的行为壁垒,即向闭包添加一个表达式或语句会导致编译失败的结果。

SE-0327: On Actors and Initialization正在审查中。

Actors 是 Swift 中相对较新的名义类型,为其可变态提供了数据竞争安全性。数据保护是通过将每个 actor 实例可变状态一次最多隔离一个任务来实现的。引入 actor(SE-0306)的提案非常庞大和详细,但忽略了创建和销毁 actor 隔离状态的一些细微之处。 该提案旨在支持一个 actor 的定义,为了弄清一个 actor 实例的数据隔离何时开始和结束,以及在一个 actorinitdeinit 函数声明中能够做什么。

SE-0328:Structural opaque result 类型正在审查中。

Opaque 结果类型可以用作函数的结果类型、变量的类型或者下标的结果类型。在所有情况下, Opaque 结果类型必须是整个类型。该提案建议解除该限制,并且在“结构性”的位置中允许使用 Opaque 结果类型。

Swift 论坛

I

一个来自 @justkwin 关于 Foundation 如何使用 URL 结束来表示 file.paths 的小历史教训。

II

Anders Bertelrud 提出了添加包管理器命令插件的提案。

SE-0303 引入了第一种 SwiftPM 插件,专注于使用自定义构建工具调用扩展构建系统的能力(特别是为了生成源代码)。 那些插件一直计划成为第一种被 SwiftPM 支持的插件。

Kristaps Grinbergs 想提出一个提案草案,为 SwiftPM 添加另一种更通用目的的“命令插件”。 这些类型的插件可以由用户直接调用,用于源代码格式化、文档生成、测试报告生成等。命令插件不一定与构建系统有任何关系。

这些自定义命令插件一个重要的方面是它们可以要求插件主机(SwiftPM 或支持包的 IDE)按需生成专门的信息,或着初始化构建或测试运行。 这是提案草案中最需要仔细审查的部分。 在使 API 足够丰富以令其尽可能有用,同时也使其足够通用以不仅在 SwiftPM 中而且 IDE 中支持 Swift 包,这里有一个相悖的因素。

III

Guillaume Lessard 提出了一项提案,该提案将实现指针族初始化改进。

UnsafeMutablePointer 系列中的类型通常需要手动管理内存分配,包括对其初始化状态的管理。 涉及的状态是在分配后:

  1. 未绑定和未初始化时(当在 UnsafeMutableRawPointer.allocate() 返回)
  2. 绑定到一个类型,并且未初始化(从 UnsafeMutablePointer<T>.allocate() 返回)
  3. 绑定到一个类型,并且初始化

无论何时它未曾被初始化,内存都能够安全地销毁。

不幸的是,不是每一个 UnsafeMutablePointer 系列中的类型有这个必要功能,以用于全面管理它内存初始化的状态。 我们打算在本提案中解决这个问题,并提供在各种更广泛的情况下管理初始化状态的功能。

IV

Kelvin Ma 展开了一个关于 AsyncStream 构造函数的讨论,该构造函数也返回其 Continuation

有没有什么方法我们可以向 AsyncStream 添加一个 API,它直接返回 Continuation,从而我们就不必把它的闭包“调来调去”?

一般来说,我也觉得 AsyncStream 真的很难使用,因为迭代在创建了 AsyncStream 的同一个任务中发生,甚至是没有并发迭代时曾出现。 这使“订阅” actor 对象生成的事件变得困难,即使订阅方法被标记为 nonisolated

V

Adam Fowler 积极将 MQTTNIO 库加入 SSWG 包列表中.

MQTT 是一种通常用于与 IoT(物联网)设备进行通信的消息传递协议。 它是一种轻量级的发布/订阅消息传输,旨在具有较小的代码占用空间和网络带宽。

VI

Cory Benfield 向我们更新了关于 SwiftNIO Swift 版本支持。

SwiftNIO 团队已将其作为我们工作流程的主要支柱,以尝试在相当长的时间内支持 Swift 版本。大多数用户没有利用这一点,更愿意继续使用最新版本的 Swift,但我们认为重要的是你要有信心,新编写的应用程序将在未来获得一些有意义的支持。

VII

Victoria Mitchell 写了一篇关于扩展 Swift-DocC 以支持 Objective-C 的文档。

DocC 的架构目前仅支持 Swift 一个语言的渲染符号文档。然而,有些跨语言项目可以从将多个“语言变体”收集到同一组文档中受益,例如可以被 Swift 中调用的 Objective-C API,反之亦然。

关于我们

我们是由 Swift 爱好者共同维护,我们会分享以 Swift 实战、SwiftUI、Swift 基础为核心的技术内容,也整理收集优秀的学习资料。

感谢 SwiftWeekly 与我们的合作,开启 Swift 周报中文版发布之旅。

周报仓库:https://github.com/SwiftCommunityRes

后续还会翻译大量资料到我们公众号,有感兴趣的朋友,可以加入我们

Swift 周报 第六期相关推荐

  1. Swift 周报 第四期

    前言 最近 Swift.org 进行了一些非常好的改进,包括对 dark mode 的支持. 对于在 iOS 上使用 dark mode 的用户,该网站将自动切换模式以匹配. 为了 Swift 社区周 ...

  2. Swift 周报 第十七期

    前言 本期是 Swift 编辑组自主整理周报的第八期,每个模块已初步成型.各位读者如果有好的提议,欢迎在文末留言. 欢迎投稿或推荐内容.目前计划每两周周一发布,欢迎志同道合的朋友一起加入周报整理. 风 ...

  3. 微信小程序周报(第六期)

    2019独角兽企业重金招聘Python工程师标准>>> 微信小程序周报(第六期) 客户被绑,蒙眼,惊问:"想干什么?" 对方不语,鞭笞之,客户求饶:"别 ...

  4. iOS摸鱼周报 第八期

    iOS摸鱼周报,主要分享大家开发过程遇到的经验教训及学习内容.虽说是周报,但当前内容的贡献途径还未稳定下来,如果后续的内容不足一期,可能会拖更到下一周再发.所以希望大家可以多分享自己学到的开发小技巧和 ...

  5. Swift 周报 第二十九期

    文章目录 前言 新闻和社区 担心泄密!外媒:苹果公司限制员工使用ChatGPT 苹果公司大幅削减其MR头显销售预期,不足百万台 提案 通过的提案 正在审查的提案 Swift 论坛 1.讨论 Swift ...

  6. 产品周报第30期|编辑器支持自定义写作模板;MarkDown编辑器接入质量分检测功能;CSDN APP V5.2.0版本发布

    hello,大家好,这里是「CSDN产品周报」第30期.本次更新主要涉及博客.首页和CSDN APP,欢迎大家详细了解和使用. 博客产品体验优化 一.编辑器新增自定义模板创建功能 每个人都有自己的写作 ...

  7. 微信小程序周报(第九期)-极乐科技

    每周一笑 儿子:"爸爸,哥哥毕业以后,就会当和尚,会法术了吗?" 爸爸:"傻儿子,你哥哥是学技术了,不是学法术!" 儿子:"为什么他们都说,哥哥去了济 ...

  8. 第六周工作周报销售_知新周报|第六周

    原标题:知新周报|第六周 知新周报 一周会议汇总 距离国庆小长假又过去了一个星期,在这一周里化学化工学院又发生了哪些事呢,一起来看看吧! 1 10月8日中午十二点半,生活委员大会在十教附一104顺利展 ...

  9. CSDN产品周报第19期|CodeChina正式更名为GitCode、不存在有效回答的免费提问也支持自主结题啦

    hello,大家好,这里是「CSDN产品周报」第19期.本次更新主要涉及首页.博客.问答.下载及CodeChina,具体细节请往下看. 一.首页优化 1.首页「热榜信息流」默认展示所有可选的内容榜单, ...

最新文章

  1. golang sdk后端怎么用_Golang资深后端工程师需要了解的知识点
  2. 机器学习算法精讲20篇(一)-k-means聚类算法应用案例(附示例代码)
  3. 分享制作精良的知识管理系统 配置SQL Server文档数据库 完美实现博客文章的的下载,存储和浏览...
  4. PLSA隐变量主题模型的公式推导解惑
  5. win32 ——定时器消息 小程序:打印时间
  6. php pdf转为word,免费pdf转word软件汇总
  7. 人工雨量计_自动站与人工站遥测雨量计降水量对比分析
  8. 【知识点2】最大公约数与最小公约数
  9. 电子签名法学习-(1)电子认证服务机构
  10. IDEA安装后无法启动
  11. java线程池newfi_java线程池
  12. python爬虫数据分析项目 双十一_Python爬取淘宝商品数据,价值千元的爬虫外包项目!...
  13. 暗黑破坏神(DIABLOII 1.11B)BOT下载
  14. 【笑小枫的SpringBoot系列】【六】SpringBoot日志打印Logback详解
  15. ztext - 简单几行代码创建酷炫 3D 特效文字的开源 JS 库
  16. adguard home上网慢_AdGuardHome最新版本DNS设置负载均衡设置讨论:哪种设置快
  17. 函数最值题目及答案_函数的最值与导数综合测试题(附答案)
  18. 纯小白初识函数—主函数调用子函数:
  19. 微信小程序开发基础(04基础加强)
  20. 企业邮箱跟qq个人邮箱有什么区别?

热门文章

  1. iPhone 13怎么关机?苹果iPhone 13关机图文教程
  2. 马蜂窝陈罡:用户、内容、商业化3C矩阵,是新一代旅游市场密码
  3. 虹科案例|安全性防护平台-海康威视摄像机中的重大漏洞
  4. JAVA SE File下面的方法
  5. RecyclerView 滑动之后显示数据错乱
  6. 如何快速通过对方微信好友验证!
  7. 负样本为王,百篇论文概览负采样方法的前世今生
  8. 苹果cookie是打开还是关闭_cookie那些事
  9. Kubernetes控制器和service
  10. PDF编辑之加密的PDF文档如何解除密码和进行编辑