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开发工具,代表了苹果平台开发的未来方向。开发者可以根据自己的项目需求,选择性地深入研究相关技术点。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C042
MiniMax-M2.1从多语言软件开发自动化到复杂多步骤办公流程执行,MiniMax-M2.1 助力开发者构建下一代自主应用——全程保持完全透明、可控且易于获取。Python00
kylin-wayland-compositorkylin-wayland-compositor或kylin-wlcom(以下简称kywc)是一个基于wlroots编写的wayland合成器。 目前积极开发中,并作为默认显示服务器随openKylin系统发布。 该项目使用开源协议GPL-1.0-or-later,项目中来源于其他开源项目的文件或代码片段遵守原开源协议要求。C01
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7GLM-4.7上线并开源。新版本面向Coding场景强化了编码能力、长程任务规划与工具协同,并在多项主流公开基准测试中取得开源模型中的领先表现。 目前,GLM-4.7已通过BigModel.cn提供API,并在z.ai全栈开发模式中上线Skills模块,支持多模态任务的统一规划与协作。Jinja00
agent-studioopenJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力TSX0121
Spark-Formalizer-X1-7BSpark-Formalizer 是由科大讯飞团队开发的专用大型语言模型,专注于数学自动形式化任务。该模型擅长将自然语言数学问题转化为精确的 Lean4 形式化语句,在形式化语句生成方面达到了业界领先水平。Python00