# 老司机 iOS 周报 #355 | 2025-10-20

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

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

## 文章

### 🐎 [使用 @_private(sourceFile:) 测试 Swift 私有成员](https://kyleye.top/posts/swift-private-imports/)

[@阿权](https://github.com/bqlin)：私有成员一直是单元测试的难题，以往的做法要么公开其成员，要么封装供测试的接口，本文提出可以用 `@_private(sourceFile:)` 测试私有成员。该标识是非公开 API，是编译器专用的接口，可绕过访问控制。不过前提需要为目标模块添加编译标志 `-enable-private-imports`，允许其私有成员被外部测试访问，并需用条件编译宏包裹，以防后续编译器更新导致 API 不可用。

通过这种方式，可以在完全不修改原有接口的前提下自由地编写单元测试代码。

### [Building 17 Agentic AI Patterns and Their Role in Large-Scale AI Systems](https://levelup.gitconnected.com/building-17-agentic-ai-patterns-and-their-role-in-large-scale-ai-systems-f4915b5615ce)

[@EyreFree](https://github.com/EyreFree)：本文聚焦大规模 AI 系统构建，提出 17 种智能体架构及应用场景，含多智能体系统、集成决策、思维树（ToT）等。以 LangChain、LangGraph、LangSmith 为工具栈，详细解析各架构实现流程，如反思架构通过生成 - 批判 - 优化提升输出质量，ReAct 架构借 “思考 - 行动 - 观察” 循环解决多步骤问题，PEV 架构增验证环节应对工具失效。还介绍组合架构思路，强调不同架构协同可实现复杂任务，且附 GitHub 代码库供实践，为大规模 AI 系统开发提供全面参考，在做 AI 相关开发的同学可以看看。

### 🐎 [iOS 26 你的 property 崩了吗？](https://mp.weixin.qq.com/s/6jxpWDq4JWTpKmmCx3S3XA)

[@Kyle-Ye](https://github.com/Kyle-Ye): iOS 26 Runtime 在 `objc_storeStrong` 实现中引入了哨兵值机制（0x400000000000bad0），主动暴露 nonatomic 属性的并发访问问题。新实现在写入新值之前，会先向属性地址写入哨兵值，创建一个"危险窗口"。任何在此窗口期间的并发读写操作都会必然触发 EXC_BAD_ACCESS 崩溃，而不再依赖于对象引用计数等不确定因素。文章详细剖析了写写并发（objc_release 崩溃）和读写并发（objc_retain 崩溃）两种典型场景，并介绍了快手自研的 Ekko 安全气垫框架如何通过兜底 Mach 异常来进行崩溃止损。对于维护线上 App 稳定性的开发者来说，这个系统级变更影响全量版本，建议重点关注 nonatomic 属性的线程安全问题，必要时改用 atomic 或添加额外的安全气垫机制进行兜底。

### 🐕 [Build Your First 24/7 Agentic Loop](https://wezzard.com/post/2025/09/build-your-first-agentic-loop-9d22/)

[@Cooper Chen](https://github.com/cjlcooper)：如果你想了解“ AI Agent 是否能真正实现持续自主执行任务”，WeZZard 的文章与配套项目是极具价值的入门参考。

该文章提出了一个极简且可工程化复用的方法论：
**Contract（合同）＋ Loop（循环）＋ Runtime（运行时）**。借助高阶模型（如 Claude 4 或未来的 GPT-5），通过结构化 JSON 协议与工具调用，系统即可在评估者（Evaluator）与执行者（Executor）之间持续推进任务，实现 24/7 agentic 工作流。

配套开源仓库 [《agentic-loop-playground》](https://github.com/WeZZard/agentic-loop-playground)实现了一个完整示例：

- 自动扫描并处理代码中的 `TODO/FIXME`
- evaluator 决策，executor 执行
- 循环驱动任务直至完成

这是一种无需复杂框架即可落地的智能代理构建方式，非常适合开发者快速启动个人或团队级 Agent 流程。

### 🐕 [Understanding Live Activities: visual micro-storytelling](https://www.createwithswift.com/understanding-live-activities-visual-micro-storytelling/)

[@AidenRao](https://weibo.com/AidenRao)：这篇文章是关于 iOS 16 引入的 Live Activities（实时活动）功能的设计指南。

- **Live Activities 是**一种实时微界面，可以在锁屏、灵动岛等处显示应用动态更新。适用于有时间敏感、状态变化的任务，例如：
    - **状态跟踪**：如外卖配送、出行导航。
    - **计时器**：如烹饪、停车计时。
    - **阶段进程**：如电商订单进度。
    - **实时更新**：如体育比赛得分。
- **不适用情况**：静态信息（如天气温度）或非关键更新（如社交点赞），应使用通知或小组件。

Live Activities 的核心是帮助用户快速获取关键动态信息，减少频繁打开应用的需要。设计时应以用户需求为中心，避免滥用。

### 🐎 [iOS 17 + SwiftUI TextField 内存泄漏分析](https://kyleye.top/posts/swiftui-textfield-memory-leak/)

[@DylanYang](https://github.com/Dylan19Yang)：iOS 17 引入的 AutoFillUI 框架使得在使用 UITextField 时会发生不预期的内存泄漏，当 UITextField 成为第一响应者且用户离开视图时就会发生。由于在 SwfitUI 中 TextField 可以通过 .environmentObject() 保持对大型对象图的引用，因此在 SwiftUI 中内存泄漏的问题会更严重一点。对问题起因和绕过方式感兴趣的同学可以阅读本文作进一步了解。

## 内推

重新开始更新「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）
