老司机 iOS 周报,只为你呈现有价值的信息。你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。新闻iOS & iPadOS 18.4 Beta 1: Here’s everything new对于中国用户最期待的自然是中文版本的 Apple Intelligence 终于可以使用了,Release Notes 有两条相关提醒:对于中文(非英语),使用 Apple Intelligence 需要前置打开 Siri ,并允许通过任意方式唤醒 Siri 。还原设备后,可能出现 Apple Intelligence 出现 "Downloading support …" 的报错,此时重启设备后问题可能可以解决(原文用词是 might resolve ,尚不清楚是否有 bad case)。文章🐎 Understanding SwiftUI Preferences@JonyFang: 本篇主要介绍了 SwiftUI 中的 Preferences 机制,讲述了其在父子视图间传递数据的作用。 作者通过具体示例,展示了如何利用 Preferences 构建自定义视图,如表单验证功能。 此外,文章还讨论了 Swift 6 中与 Preferences 相关的问题,提供了对开发者有价值的见解。 总的来说,这篇文章为开发者深入理解和应用 SwiftUI 的 Preferences 提供了清晰的指导。🐢 The Synchronization Framework in Swift 6@DylanYang:作者为我们介绍了 Swift 6 和 iOS 18 下的新同步框架,其中主要包含了两个底层结构 Mutex 和 Atomics。作者在本文中对这两个新的能力做了较为详细的说明和性能比对。Mutex 能使得对被他包裹的数据的访问自动上锁,在性能上和手动通过代码上锁区别不大,但是相比使用 Actor 有不少提升。不过相比 Actor 的缺点自然是锁会阻塞当前线程。而 Atomic 则可以使被他包裹的操作都为原子操作不会被并发打断。从性能上看它和 Actor 比并没有较大优势,因此大多数情况下使用 Actor 已经足够。对同步框架感兴趣的读者可以花时间阅读下本文。🐎 The Framework Next Door@BluesJiang: 这篇文章分享了他们在制作密室逃脱场景下,使用 TabletopKit 来开发一个 VisionOS 的应用。这个主要是针对桌面游戏的需求来设计的框架,支持多人互动,桌面的 Persona 布局,还有丰富的交互能力。有兴趣给 Vision Pro 开发桌面游戏的可以调研一下这个框架。🐎 解决 Xcode 16 "Waiting to reconnect to ..." 问题@Cooper Chen:这篇文章主要解决了在升级到 Xcode 16 后,无法在 Apple TV(tvOS 17.7)上构建应用的问题。错误提示显示 DDI(Developer Disk Image)内容过时,导致设备无法连接。最终,运行 xcrun devicectl manage ddis update 命令更新 DDI 后,问题得以解决。这个方法不仅适用于 tvOS,也可以解决 iOS 开发中的类似问题,帮助开发者应对 Xcode 16 引入的新 DDI 管理方式。🐢 asm lessons@老驴:很多人敲碗等待的 FFmpeg 汇编课终于来了。FFmpeg 现在基本是业界最重要的开源视频编解码库了。这种对于性能极度敏感的库,自然会有一些特殊手段来进一步优化性能。FFmpeg 团队就在库里使用了大量的汇编,按照他们的说法,可以大幅提升性能。但是现在会手写汇编语言的人也越来越少,所以很多人就敲碗让团队出一个汇编课程。这就是这个课程的来历。略微可惜的是,这个课程目前是基于 x86 的汇编,不过团队也说之后会添加 ARM 的汇编内容。鉴于 FFmpeg 在业界的地位,值得大家花一点时间来学习一下。工具🐎 你的 iPhone 也可以离线运行 DeepSeek「含原理介绍」@EyreFree:本文为大家介绍了一款能在 iPhone 上运行 LLM 的应用 fullmoon,它的下载链接为 https://apps.apple.com/app/id6727014156,能直接运行 mlx-community/DeepSeek-R1-Distill-Qwen-1.5B-4bit 模型,还给出了配置步骤,其原理基于苹果的 MLX Swift 实现,iOS 开发者可通过修改 LLMEval 例子来运行 DeepSeek。作者自测 iPhone 16 Pro 能运行 1.5B 和 7B 模型,感兴趣的朋友可以下载体验。Tips🐎 DispatchConcurrentQueue 可用性提示@Damien:DispatchConcurrentQueue 实际要在 iOS 17 才开始能够使用,但是 Xcode 15 标注错误并且可以通过编译检查,但是在 Runtime 期间会引发 Crash。有使用到的同学请特别注意。Xcode 15Xcode 16内推重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)关注我们我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。关注有礼,关注【老司机技术周报】,回复「2024」,领取 2024 及往年内参同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。说明🚧 表示需某工具,🌟 表示编辑推荐预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)