Swift 周报 第十七期

简介: 风起雨坠袭大地,叶落冬来又一年。Swift社区,和你同风雨,与你共未来!👊👊👊

前言

本期是 Swift 编辑组自主整理周报的第八期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。

欢迎投稿或推荐内容。目前计划每两周周一发布,欢迎志同道合的朋友一起加入周报整理。

风起雨坠袭大地,叶落冬来又一年。Swift社区,和你同风雨,与你共未来!👊👊👊

周报精选

新闻和社区:苹果发布最新声明!将工人健康放在首位,iPhone 14 Pro 收获需等待更长时间。

提案:Swift 论坛讨论人气最高的提案

Swift 论坛:比较两个 “any Error” 的相等性

推荐博文:iOS 16 统计图实战汇总

话题讨论: 大家觉得互联网行业会不会持续走下坡路?

留言福利: 技术书籍一本,内参 2 份

新闻和社区

11 月 14 日,参与新一周的 Ask Apple 活动

欢迎继续参与新一周激动人心的 Ask Apple 开发者系列活动,与 Apple 专家直接交流沟通。针对如何将最新技术集成到您的 App 中、设计直观的 UI,以及测试最新软件等主题大胆提问。

活动将于 11 月 14 日至 18 日举行,届时将提供多种语言和多个时区的在线一对一咨询和小组 Q&A。现已面向 Apple Developer Program 和 Apple Developer Enterprise Program 的当前成员开放注册。

Ask Apple 开发者系列活动终场周将在 12 月推出,敬请关注详情。

苹果发布最新声明!将工人健康放在首位,iPhone 14 Pro 收获需等待更长时间。

11 月 7 日,苹果对 iPhone 14 Pro 和 iPhone 14 Pro Max 目前的供应情况做出最新声明。苹果称,富士康郑州工厂目前的产能大幅度降低,iPhone 14 Pro 和 iPhone 14 Pro Max 的出货量将低于预期。

苹果表示,“我们继续看到对 iPhone 14 Pro 和 iPhone 14 Pro Max 机型的强劲需求。然而,我们现在预计 iPhone 14 Pro 和 iPhone 14 Pro Max 的出货量将低于我们之前的预期,顾客将需要等待更长的时间才能收到新产品。”

苹果称,正在与供应商密切合作,以恢复正常的生产水平,同时确保每个工人的健康和安全。

macOS Ventura 更高效,更尽兴,更跨界。

macOS Ventura 让各种日常操作都进化成神操作。一波新技能助你搞定更多,一众常用 app 能分享和协作,晋级的游戏让你更投入,还有种种妙招能拉上其他设备一起显身手。

优化的搜索功能,搜索功能可提供更准确、更完整的搜寻结果,还能在你键入前就提供搜索建议。

聚焦的快速操作,现在,你可使用聚焦搜索快速执行操作,比如设置闹钟、开启专注模式、用 Shazam 查找歌名、运行快捷指令等。

共享标签页组,从 Safari 浏览器直接分享标签页和书签,或发送信息。无论是与好友规划行程,还是与家人选购沙发,你都可以在一处地方集中分享所有标签页。而你的伙伴也可把他们的标签页添加进来。

收发信息的新技能,现在,你可对刚发出的信息进行编辑,或是将其撤回。另外,对于无法及时回复,想回头再来处理的信息,可标为未读。

iCloud 共享照片图库,可与最多五人顺畅地分享照片和视频,鼓励大家一起制作家庭照片集,让回忆更丰富完整。iCloud 共享照片图库会把家人们的美好回忆都集于一处,让每个家庭成员随时都能欣赏,即使不是自己拍摄或编辑的照片也能看到。

多种智能的共享方式,共享照片图库可以根据开始日期或照片中的人物,选取想要囊括的内容来进行设置。完成后,你可以手动分享,也可以看看边栏里新的“为共享图库推荐”,根据它的智能建议将照片添加进来。

在 App 之间切换,轻点一下,可在各 app 和窗口之间流畅切换;点按桌面任意位置,则能快速返回某个文件或文件夹。

FaceTime 通话也能玩接力了,轻轻一点,就能在设备之间转移 FaceTime 通话,方便你随时换上合适的设备。

让 iPhone 兼职网络摄像头,iPhone 强大的摄像头系统配合 Mac,能实现以往普通网络摄像头做不到的效果。只要将 iPhone 靠近 Mac,输入源就会自动切换为 iPhone,而且过程是无线的,不用动手插拔。

更多 macOS Ventura 新功能请查阅 https://www.apple.com.cn/macos/ventura/

提案

提案模块本期没有新的状态更新。下面推荐几个在 Swift 论坛讨论人气最高的往期提案。感兴趣的小伙伴可以去参与讨论。

提案 SE-0374: 将 sleep(for:) 添加到 Clock。该提案已在十五期周报正在审查的提案模块做了详细介绍。

提案 SE-0376: 函数反向部署。该提案已在十六期周报正在审查的提案模块做了详细介绍。

提案 SE-0377: 提出了新的 borrow 和 take 参数修饰符。该提案已在十六期周报正在审查的提案模块做了详细介绍。

提案 SE-0366: 代码上下文新增敏感关键字 move 修订后。该提案已在十一期周报正在审查的提案模块做了详细介绍。

Swift论坛

1) Move-Only 类型的非正式介绍

2) 相同的值相等的复杂性保证

let foo: String = ....
let bar = foo
foo == bar // is this O(1) ?

3) 资料分享 swift package SignalHandler

4) 讨论在 Linux 上使用 5.7 Regex 的问题

5) 讨论 Swift 论坛的 iOS 应用

Discourse Hub App可以用来浏览Swift论坛内容,App基于WebView,本质与用浏览器没有区别😂

6) 讨论检测 Mac 设备上可用的 USB 端口数量

7) 讨论比较两个“any Error”的相等性

问题描述:有一个错误类型,它包含另一个存在的any Error:

@frozen public
struct RecursiveError<Location>:Error
{
    /// The location (key or index) where the error occurred.
    public
    let location:Location
    /// The underlying error that occurred.
    public
    let error:any Error

    @inlinable public
    init(_ error:any Error, in location:Location)
    {
        self.location = location
        self.error = error
    }
}

Unit Test:

$0.test(name: "int32-to-uint8", decoding: bson,
    failure: RecursiveError<String>.init(
        IntegerOverflowError<UInt8>.int32(.max),
        in: "int32"))
{
    try $0["int32"].decode(to: UInt8.self)
}

解决方法:

extension Error where Self:Equatable
{
    fileprivate
    func equals(_ other:any Error) -> Bool
    {
        (other as? Self).map { $0 == self } ?? false
    }
}

8) 讨论 Boolean 运算和 async let

执行:

async let first: Int[] = someAsyncCall()
async let second: Int[] = anotherAsyncCall()

let bothEmpty = (await first).isEmpty && (await second).isEmpty
// or
let bothEmpty = await (first.isEmpty && second.isEmpty)
// or any other variation I can think of

会有以下 Error:

'async let' in an autoclosure that does not support concurrency
Capturing 'async let' variables is not supported

Boolean 运算是使用标记为自动闭包的 rhs 参数定义的,这意味着右侧的表达式会自动捆绑到闭包中,从而延迟其执行直到需要。 值得注意的是,这个 rhs 闭包属性没有被标记为 async ,所以没有 await 语句可以出现在它的“内部”。

解决:

let bothEmpty = await [first, second].allSatisfy(\.isEmpty)

推荐博文

在 iOS16 中用 SwiftUI 图表定制一个线图

摘要: 在 iOS 16 中引入的 SwiftUI 图表,可以以直观的视觉格式呈现数据,并且可以使用 SwiftUI 图表快速创建。本文演示了几种定制折线图并与区域图结合来展示数据的方法。

在 Swift 图表中使用 Foudation 库中的测量类型

摘要: 本篇文章使用今年推出的新的 Swift Charts 框架,实现如何绘制默认不符合 Plottable 协议的类型的数据。

在 iOS 16 中用 SwiftUI Charts 创建一个折线图

摘要: 苹果在 WWWDC 2022 上推出了 SwiftUI 图表,本文展示了如何用比以前从头开始创建同样的折线图少得多的代码轻松创建折线图。

如何在 SwiftUI 中创建条形图

摘要: 本文将展示如何创建一个垂直条形图,其中矩形的高度将代表每个类别的值。

Flutter 实战整理

摘要: 文章仓库增加 Flutter 实战模块,整理相关主题文章。

话题讨论

都说互联网红利已经没有了,那么大家觉得互联网行业会不会持续走下坡路?

欢迎在文末留言参与讨论。

关于我们

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

特别感谢 Swift社区 编辑部的每一位编辑,感谢大家的辛苦付出,为 Swift社区 提供优质内容,为 Swift 语言的发展贡献自己的力量。

目录
相关文章
|
人工智能 小程序 机器人
Swift 周报 第二十期
在这个来去匆匆风云变幻的季节,Swift社区更像一个密不透风的茧,为的只是有朝一日能够破茧成蝶。👊👊👊
127 0
|
安全 搜索推荐 编译器
Swift 周报 第十三期
昔孔子登泰山而小天下, 今诸君阅Swift社区皆足矣。请君浅读,与君共勉!👊👊👊
175 0
Swift 周报 第十三期
|
人工智能 自动驾驶 程序员
Swift 周报 第十九期 |技术汇总
十期磨一剑,废铁亦有形,Swift社区就是你梦想已久的香格里拉,哪怕青冥长天,纵然绿水波澜!👊👊👊
168 0
|
存储 供应链 API
Swift 周报 第十八期
蝴蝶的生命之所以如此短暂,因为它的翅膀太过精致了。Swift社区之所以浩瀚汹涌,因为它总想牵动起每一位读者的心!👊👊👊
156 0
Swift 周报 第十八期
|
安全 API 开发工具
Swift 周报 第十六期
当你来到双水村以外的大世界,你的人生目标便不单单是一名庄稼人了。Swift社区陪你一起成长,一起创造更多可能!👊👊👊
133 0
Swift 周报 第十六期
|
传感器 存储 数据采集
Swift 周报 第十五期
果然,十一假期与新一轮疫情撞了个满怀,远方的你还好吗?Swift社区愿与你携手,一起尖叫一起笑,一起撑伞一起闹!👊👊👊
174 0
Swift 周报 第十五期
|
安全 程序员 编译器
Swift 周报 第十四期
小时候幸福很简单,长大后简单很幸福。Swift社区有你未领取的小幸福,等你简简单单来开启!👊👊👊
133 0
|
安全 5G 网络安全
Swift 周报 第十二期
夏夜恬静月色柔,绵绵思绪埋心头,Swift社区常逗留,今夕明朝百事欧。欧拉欧拉👊👊👊
225 0
|
供应链 算法 JavaScript
Swift 周报 第十一期
平凡的八月,不平凡的世界,你若落后,必定挨打,你若前进,方得始终!**Swift社区**,给你最新的指引,给你最真的铠甲!
293 0
Swift 周报 第十一期
|
XML 存储 前端开发
Swift 周报 第十期
昨日的生活与工作是否也曾迷茫?对新技术渴望突破的心是否依旧执着?Swift社区,为你的技术栈添砖加瓦,你,准备好了吗?
155 0
Swift 周报 第十期