Latest

MVVM 架构|协调 Service 层与Manager 层

MVVM 架构|协调 Service 层与Manager 层

在使用 MVVM 架构的 Swift 项目,可以抽象出 MVVM 核心层和支持层。 * 核心层包含基本的 Model、View 和 ViewModel。 * 支持层包含 Service、Manager 和其他工具类(Utilities)。 一个完整的项目结构是这样: 在涉及 SwiftData 的功能模块,会更复杂一些。 Manager 和 Service 的协调关系 Service > Manager 典型的调用链路: View → ViewModel → Service → Manager → 外部资源 Service 层级高于 Manager,在 Service 调用多个 Manager。 在 ViewModel 中调用 Service * 避免在 View 中直接调用
廖林
Concurrency|Swift 6.2 让并发更容易控制

Concurrency|Swift 6.2 让并发更容易控制

Swift Concurrency 实际上包含异步和并发两个部分,他们是不同的概念: * 异步:async/await 语法,让代码不阻塞当前线程,后续代码可以继续执行。 * 并发:使用 Task 与 Actor 等并发原语,控制任务在哪个线程执行。 以下是关于 Swift Concurrency 的几个核心: 1 - 使用异步,并不意味着一定在后台线程执行 实际上,在大部分情况下,任务仍然在调用它的线程中执行 —— 这避免了数据竞争的问题,但仍然可能运行卡顿。 对于耗时但轻量级的任务,使用异步能很好的解决卡顿问题,最常见的场景是处理网络请求。然而,对于一些非常消耗性能的繁重任务,如果在主线程执行,即使使用异步语法,也会导致运行卡顿 —— 因为主线程资源可能被耗尽。 2 - 可以使用 Task 控制任务执行的线程 理想情况下,对于繁重的任务,应当将它从主线程剥离分派到后台线程执行,从而保证 App 界面运行流程
廖林