廖林

廖林

Swift-Concurrency

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

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

SwiftUI|使用 sensoryFeedback 添加触感反馈

UIImpactFeedbackGenerator UIImpactFeedbackGenerator 是 UIKit 提供的一个组件,可以用于精细的控制反馈类型。 UIKit 不支持 macOS 和 tvOS,因此,考虑到跨平台性,不建议使用它。 sensoryFeedback 基于选择状态的反馈(.selection) * 用户在设置中,切换深色/浅色模式 .sensoryFeedback(.selection, trigger: colorScheme) * 拖动项目重新排序列表时感受到的触觉反馈 .alignment 基于操作结果的反馈(.success) 告诉用户操作是否成功或出现了错误: .sensoryFeedback(.success, trigger: isActionPerformed) .sensoryFeedback(.error, trigger: isActionPerformed) .sensoryFeedback(.warning, trigger: isActionPerformed) 自定义反馈效果(.impac
2 min read