首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Swift学习专栏
unravel2025
创建于2022-11-28
订阅专栏
记录本人在学习Swift过程中的精彩文章或者各种小妙招等等,内容来自 https://www.swiftwithvincent.com/、https://sarunw.com/posts/、 等博客
等 83 人订阅
共164篇文章
创建于2022-11-28
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【Swift 错误处理全解析】——从 throw 到 typed throws,一篇就够
为什么“错误处理”不能被忽略 可选值(Optional)只能表达“有没有值”,却无法说明“为什么没值”。 网络、磁盘、用户输入等真实世界操作,失败原因往往有多种:文件不存在、权限不足、格式错误、余额不
【Swift 并发编程入门】——从 async/await 到 Actor,一文看懂结构化并发
为什么官方要重做并发模型? 回调地狱 过去写网络层,三步操作(读配置→请求→刷新 UI)要嵌套三层 closure,改起来像“剥洋葱”。 数据竞争难查 多个线程同时写同一个 var,80% 崩溃出现在
Swift 泛型深度指南 ——从“交换两个值”到“通用容器”的代码复用之路
为什么需要泛型 无泛型时代的“粘贴式”编程 问题: 代码完全一样,仅类型不同 维护 N 份副本,牵一发而动全身 泛型函数:写一次,跑所有类型 语法与占位符 T 调用方式:编译器自动推断 T 要点: 占
Swift 中的不透明类型与装箱协议类型:概念、区别与实践
前言 Swift 提供了两种隐藏类型信息的方式:不透明类型(opaque type) 和 装箱协议类型(boxed protocol type)。 它们都用于隐藏具体类型,但在类型身份、性能、灵活性等
【Swift 可选链】从“如果存在就点下去”到“安全穿隧”到空合运算符
## 什么是可选链(Optional Chaining) 一句话:“当某个实例可能是 nil 时,允许你用 问号? 一路点下去;只要链中任何一环为 nil,整条表达式就优雅地返回 nil,而不会
Swift 反初始化器详解——在实例永远“消失”之前,把该做的事做完
## 为什么要“反初始化” 1. ARC 已经帮我们释放了内存,但“内存”≠“资源”。 可能你打开过文件、有过数据库连接、订阅过通知、甚至握着 GPU 纹理句柄。 2. 反初
Swift 并发编程新选择:Mutex 保护可变状态实战解析
## 前言 Swift 5.5 带来 async/await 与 Actor 后,「用 Actor 包一层」几乎成了默认答案。 但在日常开发里,我们经常会遇到两种尴尬: 1. 只想保护一个计数器
Swift 模式:解构与匹配的安全之道
什么是“模式” 在 Swift 中,模式(Pattern) 描述了一个值的结构,而不是具体的某个值。 借助模式,我们可以: 检查某个值是否符合该结构(匹配) 把符合结构的值拆解出来,绑定到新的变量 /
Swift 下标(Subscripts)详解:从基础到进阶的完整指南
什么是下标 官方一句话:“类、结构体、枚举可以用下标(subscripts)快速访问集合、列表、序列中的元素,而无需再写专门的存取方法。” 换句话说:someArray[index]、someDict
Swift 中基础概念:「函数」与「方法」
为什么要区分「函数」和「方法」 写 Swift 时,我们每天都在写 func。 但同一个关键字,有时叫「函数」,有时又叫「方法」。 名字不同,背后其实是作用域与归属权的差异: 函数(function)
Swift 方法全解:实例方法、mutating 方法与类型方法一本通
前言 官方文档已经把语法和规则写得足够严谨,但初学者常遇到三个卡点: 结构体/枚举居然也能定义方法? mutating 到底“变异”了什么? static 与 class 关键字在类型方法里的区别与实
Swift 嵌套类型:在复杂类型内部优雅地组织枚举、结构体与协议
为什么要“嵌套” 在 Swift 中,我们经常会写一些“小工具”类型: 只在某个类/结构体里用到的枚举 仅服务于一条业务逻辑的辅助结构体 与外部世界无关的私有协议 如果把它们全部写成顶层类型,会导致:
Swift 类型转换实用指北:从 is / as 到 Any/AnyObject 的完整路线
为什么要“类型转换” Swift 是强类型语言,编译期就必须知道每个变量的真实类型。 但在面向对象、协议、泛型甚至混用 OC 的场景里,变量“静态类型”与“实际类型”常常不一致。 类型转换(Type
Swift 枚举完全指南——从基础语法到递归枚举的渐进式学习笔记
前言 在 C/Objective-C 里,枚举只是一组别名整型;在 Swift 里,枚举被提升为“一等类型”(first-class type),可以拥有 计算属性 实例方法 初始化器 扩展、协议、泛
【Swift 筑基记】把“结构体”与“类”掰开揉碎——从值类型与引用类型说起
Swift 里的“结构体”和“类”长什么样? 定义语法 注意:Swift 不需要 .h/.m 分离,一个文件搞定接口与实现。 创建实例——“()” 就是最简单的初始化器 访问属性——点语法(dot s
Swift 字符串与字符完全导读(三):比较、正则、性能与跨平台实战
## 字符串比较的 3 个层次 | 比较方式 | API | 等价准则 | 复杂度 | 备注 | |---|---|---|---|---| | 字符相等 | “==” | 扩展字形簇 canoni
Swift 字符串与字符完全导读(二):Unicode 视图、索引系统与内存陷阱
## Unicode 的三种编码视图 Swift 把同一个 String 暴露成 4 种迭代方式: |视图 | 元素类型| 单位长度 | 典型用途 | | -------
Swift 字符串与字符完全导读(一):从字面量到 Unicode 的实战之旅
## 前言 Swift 的 String 看起来“像 NSString 的弟弟”,但骨子里是一套全新的 Unicode 抽象模型。 ## String 与 Character 的本质 - Str
Swift 并发深度指南:非结构化任务与分离任务全解析
前言 Swift 并发编程(Swift Concurrency)中,任务(Task)是执行异步代码的最小单元。Swift 提供了三种创建任务的方式: 结构化任务(Child Tasks) 非结构化任务
Swift 6 新关键字 `sending` 深度指南——从 `@Sendable` 到 `sending` 的进化之路
背景:Swift 6 的“并发安全”红线 在 Swift 5 时代,开启 Strict Concurrency 后,以下代码会报错: Swift5时 Task的初始化方法定义 原因:Task 的 op
下一页