# 老司机 iOS 周报 #315 | 2024-12-09

![ios-weekly](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/weekly-header/315.jpg?raw=true)
老司机 iOS 周报，只为你呈现有价值的信息。

你也可以为这个项目出一份力，如果发现有价值的信息、文章、工具等可以到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 里提给我们，我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 提出。

## 新闻

### [CocoaPods Trunk Read-only Plan](https://blog.cocoapods.org/CocoaPods-Specs-Repo/)

Cocoapods 为将 Specs 仓库转为只读状态制定了时间表，预计在 2026 年 12 月 2 日正式不再接受新的提交。

## 文章

### 🐕 [有意为之还是技术缺陷？SwiftUI 多层导航中的 onChange 异常 | 肘子的 Swift 记事本](https://fatbobman.com/zh/posts/the-anomaly-of-onchange-in-swiftui-multi-layer-navigation/)

[@Barney](https://github.com/BarneyZhaoooo)：本文探讨了 SwiftUI 中 `onChange` 的异常行为，特别是在多层导航的情况下。文章分析了在使用 `NavigationView` 和 `NavigationLink` 时，`onChange` 修饰符可能会出现的问题，尤其是当视图层级嵌套较多时。作者提供了几个实际示例，演示如何管理状态变化和确保 `onChange` 正常响应。同时，提供了一些最佳实践，以帮助开发者避免常见陷阱并提升应用性能和用户体验。

### 🐕 [Improving the approachability of data-race safety](https://github.com/hborla/swift-evolution/blob/approachable-concurrency-vision/visions/approachable-concurrency.md)

[@Smallfly](https://github.com/iostalks)：这篇文章提出了 Swift 并发特性面临的易用性挑战，包括过多的显式注释、数据竞争误报和异步代码编写困难。文中提出了解决方案包括减少并发注释、调整异步函数语义以减少误报、提供同步和异步代码之间的桥接工具，以及自动迁移代码等。目的是为了让 Swift 并发更易学易用，同时保持高性能。推荐给对 Swift 并发特性演进感兴趣的同学阅读。

### 🐎 [深入探讨 C++ 多线程性能优化](https://mp.weixin.qq.com/s/18TujefnTj-17GuNgmYW-Q)

[@老驴](https://weibo.com/u/6090610445)：这篇来自腾讯技术工程的文章从实际案例出发，深入探讨了 C++ 多线程编程中的性能优化问题，包括锁竞争、缓存一致性等难点，并通过详细的 benchmark 数据对比锁与原子操作的性能差异。此外，文章还介绍了如 Epoch Based Reclamation 等高级优化方法。无论是提升性能还是理解底层机制，这篇文章都值得一读。


## 工具

### [Xcode + ChatGPT: Official Support is Available Now](https://medium.com/@hiandic/dc21998f3653?source=friends_link&sk=e4dfbadcc5281bd474ecd546b221877e)

[@EyreFree](https://github.com/EyreFree)：这篇文章介绍了 OpenAI 最新宣布的 ChatGPT for macOS 可以直接与 Xcode 集成的功能，除了 Xcode，该功能还支持 VS Code、TextEdit 和 Terminal 等开发工具。使用该功能需要按以下步骤：

- 目前该功能仅向 ChatGPT Plus 和 Team 用户开放请先确保条件符合，Enterprise 和 Edu 用户将在近期获得访问权限
- 确保 ChatGPT for macOS 应用已更新到最新版本
- 在 ChatGPT 设置中启用 `Enable Work with Apps` 选项以获取辅助功能权限
- 使用快捷键 Option + Space 打开 ChatGPT 聊天栏
- 点击 `Work With Apps` 按钮并选择 Xcode

通过这种集成，ChatGPT 可以直接查看和理解开发者的代码库（Codebase），从而提供更准确的回答和建议。作者以开发 SwiftUI 动画的卡片翻转游戏为例，展示了这个新功能的应用。AI 辅助编程近来发展迅速，这次与 Xcode 的原生集成让开发体验更加流畅，标志着 AI 编程助手进入新阶段。

### [Easydict: 一个简洁优雅的词典翻译 macOS App](https://github.com/tisfeng/Easydict)

[@Cooper Chen](https://github.com/cjlcooper)：Easydict 是一个开源的词典翻译 macOS App，能够轻松优雅地查找单词或翻译文本。Easydict 开箱即用，能自动识别输入文本语言，支持输入翻译，划词翻译和 OCR 截图翻译，可同时查询多个翻译服务结果，目前支持市面上绝多数主流的翻译 App，使用者可以通过 Homrebrew 快速安装使用，Easydict 支持鼠标滑词、OCR 识别等功能，是 Mac 平台上非常高效的翻译软件，值得推荐。

## 代码

### [swift-sharing](https://github.com/pointfreeco/swift-sharing)

[@bq](https://github.com/bqlin)：如其名，sharing，你能想到的状态共享，跨模块间的状态共享、持久化、观察监听，它都做了，无论是实现业务逻辑、Combine、SwiftUI、UIKit 都能无痛接入。关键人家实现还非常优雅，宏、属性包装器、清晰的职责实现，都是很优秀的实践，单单接入就能让你的代码耳目一新了。还是那句话，Point-Free 出品，必属精品。

## 内推

重新开始更新「iOS 靠谱内推专题」，整理了最近明确在招人的岗位，供大家参考

[北京] 比图科技 - 高级 iOS 工程师

具体信息请移步：https://www.yuque.com/iosalliance/article/bhutav 进行查看（如有招聘需求请联系 iTDriverr）

## 关注我们

我们是「老司机技术周报」，一个持续追求精品 iOS 内容的技术公众号，欢迎关注。

**关注有礼，关注【老司机技术周报】，回复「2024」，领取 2024 及往年内参**

![](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/qrcode_for_wechat.jpg?raw=true)

同时也支持了 RSS 订阅：https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。

## 说明

🚧 表示需某工具，🌟 表示编辑推荐

预计阅读时间：🐎 很快就能读完（1 - 10 mins）；🐕 中等 （10 - 20 mins）；🐢 慢（20+ mins）
