大哥大姐哪位知道,肘子的 Swift 周报 #035 | Keynote 精彩纷呈,实际应用尚需时日
最新回答
乱世浮尘
2025-03-30 14:31:18
欢迎访问 weekly.fatbobman.com 订阅本周报的中英文电子邮件版。你也可以直接访问我的博客 肘子的 Swift 记事本 查看更多的周报内容。
昨天,WWDC 2024 如期举行。在首场 Keynote 中,人工智能成为了最耀眼的明星。苹果以一种较为自然的方式,将 AI 技术融入系统的各个领域,同时保持现有用户习惯不受影响,并充分利用了设备提供的上下文信息。为了更好地保护用户隐私,除非设备的本地 AI 能力不足,否则不会依赖云端 AI 算力。即便需要访问网络,苹果也承诺将严格保护用户隐私。苹果在拥抱 AI 的同时,并没有放松其对隐私的一贯重视。
除了 AI 技术之外,Swift、VisionOS、Xcode、SwiftData、SwiftUI 等都获得了重大升级。仅从 Keynote 提供的信息来看,今年的苹果更新显示了极高的诚意。
然而,遗憾的是,许多新功能和特性并未随第一版测试版本一同发布。与 AI 相关的功能还需要一段时间才能得到体验,有些功能则要等到明年才能使用。
出乎意料的是,苹果对去年刚发布的 SwiftData 进行了巨大的调整,重构了其底层表述。从目前公开的 API 来看,SwiftData 已经不再仅是 Core Data 的一个变体,新引入的 DataStore 协议允许开发者构建自定义的存储解决方案。然而,可能由于这次改动幅度过大,SwiftData 在首个测试版本中表现出了不稳定性,建议开发者至少等待 1-2 个月后再开始深入研究。
本文讨论了在 Swift 并发编程中遇到的一个常见警告:“Capture of ‘variable’ with non-sendable type in a @Sendable closure.”。Jesse Squires 在项目中遇到了这个警告,并分享了解决方案。文章中给出了两种解决方案:第一种是通过声明一个 @unchecked Sendable 类型来包装函数;第二种是直接将闭包标记为 @Sendable 和 @MainActor,并使用 MainActor.assumeIsolated { } 来调用闭包。