# 老司机 iOS 周报 #263 | 2023-10-16

![ios-weekly](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/weekly-header/263.png?raw=true)

老司机 iOS 周报，只为你呈现有价值的信息。

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

## 新闻

### [ICP 备案上线](https://developer.apple.com/cn/help/app-store-connect/reference/app-information/)

国庆节前夕，苹果审核商店也正式上线了 ICP 备案。目前新 APP 需要填写备案号才能提交审核；老 APP 目前不填备案号也能正常提审（预计是明年 4 月强制执行）。

> 中国工业和信息化部（MIIT）要求 App 必须具备有效的互联网信息服务提供者（ICP）备案号。此外，游戏 App 必须取得网络游戏出版物号。图书和报刊杂志 App 必须持有中国国家新闻出版署（NPPA）颁发的《网络出版服务许可证》。包含宗教内容的 App 必须持有中国国家宗教事务局（NRAA）颁发的《互联网宗教信息服务许可证》。新闻 App 必须持有中国国家互联网信息办公室（CAC）颁发的《互联网新闻信息服务许可证》。如果你已经或计划在中国大陆的 App Store 中提供上述类型的 App，则必须提供相关信息和证明文件。

### [Xcode 15.1 Beta Release Note](https://developer.apple.com/documentation/xcode-release-notes/xcode-15_1-release-notes)

Xcode 15.1 Beta 版本发布，除了常规的新 SDK 发布，这次一条相对重要的信息是，从 15.1 开始，X86/64 的 芯片组（也就是 Intel CPU）不再能够开发 VisionOS ，必须使用 silicon 系列芯片组（俗称 M 系列），15.0 的时候还是支持 X86/64 的，此次放弃 X86/64 令人担忧苹果后续对老机型的支持。

## 文章

### 🐕 [Migrating Ice Cubes to the SwiftUI Observation framework](https://dimillian.medium.com/migrating-ice-cubes-to-the-swiftui-observation-framework-821f90deebee)

[@AidenRao](https://weibo.com/AidenRao)：这篇文章介绍了作者将他的开源 Mastodon 客户端 Ice Cubes 迁移到了新的 Observation framework 的过程。作者分享了一些关键点：

- 迁移并不复杂，作者只花了几个小时就完成了。
- 迁移修复了一些 bug，并不会引入新的问题。
- 性能改进明显，值得投入。
  
作者认为 Observation framework 是 SwiftUI 的一项重大改进，它简单易用，并且消除了以前数据流中的许多令人头疼的问题

### 🐕 [Dismiss keyboard when return is pressed in a multiline SwiftUI TextField](https://danielsaidi.com/blog/2023/09/15/dismiss-keyboard-when-return-is-pressed-in-a-multiline-swiftui-textfield)

[@Smallfly](https://github.com/iostalks)：这篇文章主要介绍了在 SwiftUI 中如何实现多行文本框的回车键提交和键盘自动收起功能。作者使用 `FocusState` 和 `onChange` 修饰符来监听文本变化，实现了多行文本框的提交和键盘自动收起功能，并将其封装为了一个可重用的自定义 view modifier。如果你正在开发 SwiftUI 应用，并且遇到了类似的问题，这篇文章可能会对你有所帮助。

### 🐕 [Interoperability: Swift ’ s Super Power](https://browsercompany.substack.com/cp/137231709)

[@Cooper Chen](https://github.com/cjlcooper)：Swift 作为现代的语言，在设计选择上使其展示了灵活性和兼容性且不需要以可用性为代价的特性，而使 Swift 专注于与其他语言的本地互操作性，成为 Swift 构建丰富的本地应用的一个重要目标。同时 Swift 的互操作性工具库使其成为在现有平台上构建丰富的本地应用程序和库的有力语言，并以其改进的内存安全性和强大的易用性为 C 和 C++ 提供了一个很好的替代方案。本文介绍了在 Swift 中使用 C++ Interop 和 C Interop 在 Windows 平台支持 COM 模式，同时也改进了 COM 对于 Swift 的支持，通过在 Windows 平台以及对 Swift 互操作性方法的探索，为开发者提供了一个良好的基础，让我们了解 Swift 的互操作性工具如何允许我们构建可以访问平台 API 的跨平台应用程序。

### 🐢 [深入理解 iOS Jetsam 机制，助力提升 Flotsam 召回率](https://mp.weixin.qq.com/s/vUMmQvZ1I91fhf8kFXY_mA)

[@xuyafei86](https://github.com/xiaofei86)：本文将深入介绍 iOS 系统中的 Jetsam 机制，探讨其原理和作用。Jetsam 机制负责在内存不足时终止进程以释放内存资源，了解 Jetsam 的工作原理和相关策略，可以帮助开发者优化应用程序的内存使用，提高 Flotsam 召回率。  
Flotsam 是快手定义的指标，是指 iOS 上未被监控捕获到的前台异常退出，包括但不限于由于内存溢出引起的退出。与 Jetsam 不同，Flotsam 更多地关注那些零碎、尚未明确归因的异常退出。了解 Jetsam 的工作原理和相关策略，对开发者来说，不仅有助于优化应用内存使用，还能显著提高 Flotsam 召回率，进一步提升应用的稳定性和用户体验。

### 🐎 [Swift 中闭包底层原理探索](https://juejin.cn/post/6935797942435446791)

[@J_Knight_](https://github.com/knightsj)：本文作者使用代码实例并利用导出的 SIL 和 LLVM 文件内的代码（附上了详细的代码注释）详细介绍了在 Swift 中闭包捕获单个值和多个值的原理。

### 🐢 [The Absolute Minimum Every Software Developer Must Know About Unicode in 2023](https://tonsky.me/blog/unicode/)

[@水水](https://www.xuyanlan.com/)：本文介绍了作者认为 2023 年每个软件开发人员需要知道的关于 Unicode 的一些基本知识点如下
- 什么是 Unicode
- Unicode 有多大
- Unicode 目前分配情况
- Unicode 作为私人用途的有哪些
- UTF-8 是什么
- 为什么显示 �、Emoji 长度是怎么计算的
  
...... 等一系列的问题进行了整理和解释 ~

## 代码

### 🐕 [@Model for CoreData](https://www.alwaysrightinstitute.com//managedmodels/)

[@极速男孩](https://github.com/ztlyyznf001)：Apple 在 2023 年 WWDC 上发布了 Swift 数据持久化框架 SwiftData。本文主要介绍了 ManagedModels 这个库，他为 CoreData 提供类似 SwiftData 的 API ，但不需 iOS 17+ 版本。主要区别包括：ManagedModels 中的类需明确从 NSManagedObject 继承，使用 @FetchRequest 而非 SwiftData 的 @Query 。文章提供了使用 ManagedModels 的代码示例，以及两个示例程序。

## 内推

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

[上海 / 北京] 西瓜视频 - iOS

[北京] 百度网盘 - 基础架构 / 业务 - iOS/Android/FE

[上海 / 杭州 / 北京] TikTok - 短视频 - iOS/Android/TL

[广深] TikTok 直播 - 社交互动团队 - iOS/Android

[杭州] 淘宝 - 终端平台 - iOS/Android/C++

[广州] 微信公众号 - iOS

[北京] 快手 - 本地生活 - iOS

[上海 / 北京] MiniMax - iOS

[北京] 知乎 - 会员业务 - iOS

[上海] 扫描全能王 - iOS

[深圳] 手机 QQ - 终端架构 - iOS - T10/T11

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

## 关注我们

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

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

![](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）
