首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Swift学习专栏
unravel2025
创建于2022-11-28
订阅专栏
记录本人在学习Swift过程中的精彩文章或者各种小妙招等等,内容来自 https://www.swiftwithvincent.com/、https://sarunw.com/posts/、 等博客
等 55 人订阅
共102篇文章
创建于2022-11-28
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Swift 6.1 `withTaskGroup` & `withThrowingTaskGroup` 新语法导读
为什么需要 TaskGroup? 在 Swift 并发里,当你想: 同时发起 N 个异步任务(如批量下载图片) 等全部完成再汇总结果 支持中途取消、错误传播 手动 Task { } 会显得碎片化且难以
Swift 并发:Actor、isolated、nonisolated 完全导读
Actor 是什么? Actor 是引用类型(与 class 类似),但自带隔离域: 任意时刻只允许一个任务进入 Actor 内部 外部调用必须加 await,自动排队 编译器保证无数据竞争,无需手动
Swift 5.9 `consume` 操作符:一次说清楚“手动结束变量生命周期”
为什么要 consume? Swift 的 ARC 已经自动管理内存,但“隐形拷贝”在两种场景会成为瓶颈: 大块数据(MLX 数组、CVPixelBuffer、Data > 10 MB) 超高频次(游
SwiftUI Preferences 完全指南:从“向上传值”到 Swift 6 并发安全
为什么需要 Preferences? 在 SwiftUI 里,向下传值有 @State → @Binding → @Environment,但向上传值一直是个空白。 典型痛点: 深层嵌套子视图想告诉祖
async let 也能调度同步函数?——Swift 并发隐藏小技巧详解
什么是 async let async let 是 Swift 5.5 引入的「结构化并发」语法糖之一 它允许你把「多个异步操作」并行地扔给后台,然后在需要结果时用 await 一次性收回来 写起来比
深入理解 SwiftUI 中的 `@Observable` 与 `@Bindable`:从原理到实践
引言:为什么需要 @Observable? 在 SwiftUI 的早期版本中,我们使用 @StateObject 和 @ObservedObject 来管理状态,但这些方式依赖于 Observable
Swift 入门到实战:写给 iOS 新人的实用技巧
一定要学好 Optional Swift 的 Optional 不是“语法糖”,而是安全屏障。 变量“可能有值也可能没有”时,编译器强制你显式处理,把空指针崩溃消灭在编译期。 三种常见玩法 玩法 代码
一图看懂 Sendable & @Sendable—— Swift 并发世界的「通行证」到底长什么样?
速览思维导图(先收藏,再阅读) 为什么要有 Sendable? 安全区域 危险区域 单线程、主线程 多任务、TaskGroup、actor 之间 值类型拷贝 引用类型共享 Sendable 就是编译器
Swift Actor 完全指南:从原理到实战,彻底告别数据竞争
为什么需要 Actor? 在 iOS 开发中,并发编程一直是“高并发 → 高崩溃”的重灾区。 传统锁(NSLock、os_unfair_lock、DispatchQueue.barrier)存在两大痛
Swift 语法速通:iOS 开发必会的 8 大核心概念(图解+类比)
Struct vs Class:地图复印 vs 谷歌文档 维度 struct(值类型) class(引用类型) 传递行为 复印一份 同一把钥匙 内存位置 栈(快) 堆+ARC 是否继承 ❌ ✅ 举例
Swift 6 并发编程:深入理解 `@unchecked Sendable` 的合法使用与陷阱
前言:Sendable 是什么?为什么要有 @unchecked? Swift 5.5 引入结构化并发(Structured Concurrency)后,Sendable 协议成为编译期防止数据竞争的
Swift 6.0 协议扩展:解锁协议新特性,写出更优雅、更高效的代码
前言 协议(Protocol)一直是 Swift 的“一等公民”。借助协议,我们可以把“能做什么”与“怎么做”彻底解耦。 Swift 6.0 在协议扩展(Protocol Extension)层面一次
Swift 6 并发时代,如何优雅地“抢救”你的单例?
一、为什么单例在 Swift 6 突然“不香了” 旧认知 Swift 6 新现实 static let shared = XXX()随手一写 编译器直接甩出两行血红诊断:1. 非隔离的全局可变状态(n
SwiftUI 踩坑记:onAppear / task 不回调?90% 撞上了“空壳视图”!
现象:代码看着没问题,就是不走回调 真相: Group 只是语法糖,它把子视图原样转发给父层级;当 if 分支为 false 时,整个 Group 被折叠成空节点,SwiftUI 认为“没有任何东西需
@isolated(any) 深度解析:Swift 并发中的“隔离追踪器”
什么是 @isolated(any)? @isolated(any) 是一个 函数类型属性,用于: 保留函数的 actor 隔离信息(如 @MainActor、@MyActor 或 nonisolat
Swift 6.2 新特性 `@concurrent` 完全导读
背景:为什么突然冒出 @concurrent? Swift 6.2 引入了两项默认行为变化: Main Actor 默认隔离(UI相关的Target或package) 未显式标注隔离的代码自动视为 @
Swift 里的“橡皮擦”与“标签”——搞懂 existentials 与 primary associated type
Swift 的协议一旦带上 associatedtype,就像给类型贴了一张“待填写的支票”——编译时必须知道具体填什么数字,否则无法兑现。 这导致一个经典编译错误: existentials(any
Swift 结构化并发 6 条铁律 —— 一张图 + 一套模板,让 `async let` / `TaskGroup` / `Task {}` 不再踩坑
思维导图(先保存,再阅读) 为什么分“结构化”与“非结构化” 维度 Structured Unstructured 能否成为子任务 ✅ ❌(只能是根) 能否成为父任务 ✅ ✅(再开 structure
深入理解 Swift Concurrency:从 async/await 到 Actor 与线程池的完整运行机制
一、async 函数的本质:可挂起的函数 ✅ 什么是 async 函数? async 函数是可以被挂起的函数。 挂起 ≠ 阻塞线程,而是让出线程去执行其他任务。 挂起只发生在 await 处,称为潜在
【Swift Concurrency】深入理解 `async let` 与 `TaskGroup`:并发任务的生命周期与错误传播机制
一、什么是 async let? async let 是 Swift 提供的一种结构化并发语法糖,用于并发地启动多个子任务,并延迟等待其结果。 ✅ 基本用法 每个 async let 会创建一个子任务
下一页