SwiftOldDriver/iOS-Weekly 技术周报第324期解读
项目介绍
SwiftOldDriver/iOS-Weekly 是一个专注于 iOS 开发领域的技术周报项目,由国内资深 iOS 开发者维护。该项目每周精选 iOS 开发相关的新闻、文章、工具和技巧,为开发者提供高质量的技术资讯。第324期周报发布于2025年2月24日,涵盖了iOS 18.4 Beta 1新特性、SwiftUI Preferences机制、Swift 6同步框架等多个技术主题。
iOS 18.4 Beta 1新特性解析
苹果最新发布的iOS 18.4 Beta 1版本为中国用户带来了期待已久的中文版Apple Intelligence功能。根据官方发布说明,开发者需要注意以下两点:
- 对于非英语的中文用户,使用Apple Intelligence功能需要预先启用Siri,并允许通过任何方式唤醒Siri。
- 设备还原后可能会出现Apple Intelligence显示"Downloading support..."的错误提示,此时重启设备可能解决问题。
SwiftUI Preferences机制深度解析
SwiftUI中的Preferences机制是视图间通信的重要方式,特别是在父子视图间传递数据时非常有用。Preferences允许子视图向上传递信息到父视图,而不需要显式地通过绑定或环境对象。
开发者可以利用Preferences构建各种自定义视图功能,如表单验证等。在Swift 6中,Preferences机制可能会有一些变化,开发者需要关注这些潜在的兼容性问题。
Preferences的工作流程通常包括:
- 定义自定义PreferenceKey类型
- 在子视图中设置preference值
- 在父视图中使用onPreferenceChange接收更新
Swift 6同步框架详解
Swift 6引入了全新的同步框架,主要包含两个底层结构:Mutex和Atomics。
Mutex(互斥锁)
Mutex能够自动为被它包裹的数据访问加锁,其性能与手动代码加锁相当,但相比使用Actor有显著性能优势。不过需要注意的是,Mutex会阻塞当前线程,这是它与Actor的主要区别。
Atomics(原子操作)
Atomic可以确保被它包裹的操作成为原子操作,不会被并发打断。从性能角度看,Atomic与Actor相比没有明显优势,因此在大多数情况下使用Actor已经足够满足需求。
开发者应根据具体场景选择合适的同步机制:
- 需要高性能且可以接受线程阻塞时,考虑使用Mutex
- 需要简单易用的并发控制时,Actor是更好的选择
- 需要确保单个操作的原子性时,可以使用Atomic
VisionOS开发与TabletopKit框架
在VisionOS应用开发中,TabletopKit框架为桌面游戏类应用提供了强大支持。这个框架特别适合开发密室逃脱等交互式场景,主要特性包括:
- 多人互动支持
- 智能的桌面Persona布局
- 丰富的交互能力
- 针对Vision Pro设备的优化
对于想要开发Vision Pro桌面游戏的开发者,TabletopKit提供了完整的解决方案和API支持。
Xcode 16开发问题解决方案
升级到Xcode 16后,开发者可能会遇到"Waiting to reconnect to..."的问题,特别是在Apple TV(tvOS 17.7)上构建应用时。这个问题通常是由于DDI(Developer Disk Image)内容过时导致的。
解决方案是运行以下命令更新DDI:
xcrun devicectl manage ddis update
这个方法不仅适用于tvOS开发,也可以解决iOS开发中的类似连接问题。Xcode 16引入了新的DDI管理方式,开发者需要适应这一变化。
FFmpeg汇编课程简介
FFmpeg团队推出的汇编课程对于视频编解码开发人员非常有价值。FFmpeg作为业界最重要的开源视频编解码库,使用了大量汇编代码来优化性能。
目前课程主要基于x86架构的汇编语言,但团队表示未来会添加ARM架构的内容。学习这些汇编优化技术可以帮助开发者:
- 理解高性能视频处理的底层原理
- 学习关键的优化技巧
- 掌握现代多媒体开发的底层技术
iOS设备离线运行LLM模型
现在可以在iPhone上离线运行大型语言模型(LLM)了。通过fullmoon应用,用户可以直接在设备上运行mlx-community/DeepSeek-R1-Distill-Qwen-1.5B-4bit模型。
技术实现基于苹果的MLX Swift框架,iOS开发者可以通过修改LLMEval示例来运行DeepSeek模型。根据测试:
- iPhone 16 Pro可以流畅运行1.5B和7B规模的模型
- 无需网络连接,完全离线运行
- 响应速度快,适合隐私敏感场景
DispatchConcurrentQueue使用注意事项
开发者在使用DispatchConcurrentQueue时需要注意,这个API实际上从iOS 17才开始可用。Xcode 15存在标注错误,虽然能通过编译检查,但在运行时会导致崩溃。
关键点:
- Xcode 15错误地标记了API可用性
- Xcode 16已修正这个问题
- 实际最低支持版本是iOS 17
- 使用时务必进行版本检查
总结
本期SwiftOldDriver/iOS-Weekly技术周报涵盖了从系统更新到底层优化的多个技术主题。对于iOS开发者来说,这些内容既有即时的实用价值,也有长期的技术参考意义。特别是Swift 6的同步框架和VisionOS开发工具,代表了苹果平台开发的未来方向。开发者可以根据自己的项目需求,选择性地深入研究相关技术点。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0202- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00