首页
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 基础语法全景(三):元组、错误处理与断言
## 元组:轻量级“匿名结构体” 1. 快速组装 ```swift // 1. 不命名元素 let http404 = (404, "Not Found") print(http404.0
Swift 基础语法全景(二):可选型、解包与内存安全
## 为什么需要 Optional?—— 把“没有值”做成类型 Objective-C 用 `nil` 指针表示“无”,但运行时才发现野指针; Swift 把“可能有值 / 可能没有”编译期就
Swift 基础语法全景(一):从变量到类型安全
## 常量与变量:let vs var 1. 声明语法 ```swift // 常量:一次赋值,终身不变 let maximumLoginAttempts = 10 // 最
Swift 6.2 类型安全 NotificationCenter:告别字符串撞车
传统通知的痛点 老式 NotificationCenter 三板斧: 问题清单: 字符串 key 易拼错 → 运行时 nil 手动 as? 强转 → 类型错也 nil userInfo 可选链地狱 →
Swift 控制流深度解析(二):模式匹配、并发与真实项目套路
让自定义类型支持 for-in:三分钟实现 Sequence 需求 自己写了一个“分页加载器”,想这样用: 实现 要点 只要 makeIterator() 返回的对象能满足 IteratorProto
Swift 控制流深度解析(一):循环、条件与分支
为什么 Swift 的控制流值得单开一篇? 语法糖多:区间、stride、tuple、where、guard、defer…… 安全严苛:switch 必须 exhaustive、case 不能空、默认
Swift 函数完全指南(四):从 `@escaping` 到 `async/await`——打通“回调→异步→并发”任督二脉
历史包袱:海量第三方 SDK 仍是回调形态 痛点: 嵌套地狱(Callback Pyramid) 错误处理分散 难以取消 官方桥接器:withCheckedThrowingContinuation 核
Swift 函数完全指南(三):`@autoclosure`、`rethrows`、`@escaping` 与内存管理
@autoclosure:把“表达式”包成“闭包”,实现“短路求值” 场景回顾 问题: 字符串先拼接完成,再传进函数——性能浪费。 若拼接代价高("计算成本:\(expensive())"),则每次调
Swift 函数完全指南(二):泛型函数与可变参数、函数重载、递归、以及函数式编程思想
泛型函数:让代码从“具体类型”升维到“抽象类型” 场景:写了一个交换两个 Int 的函数,后来又要交换 Double、String、CGPoint…… 泛型版本: 泛型约束:只支持“可比较”类型 多占
Swift 函数完全指南(一)——从入门到嵌套
函数的本质 自包含的代码片段,完成一个“任务”。 有名字 → 可被重复“调用”。 有类型 → 由“参数类型 + 返回类型”组成,可以像 Int、String 一样被赋值、传递、返回。 可嵌套 → 在函
Swift 闭包(Closure)从入门到深入:语法、捕获与实战
前言 闭包是 Swift 的“灵魂语法”之一。它同时承担了 函数式编程的高阶函数; 面向对象中的委托回调; 异步并发中的逃逸闭包; 甚至属性包装器与 DSL 的构建基础。 闭包到底是什么?—— 一句话
Swift 集合类型详解(三):自定义集合、持久化结构与 ORM 共舞
从零实现一个 CircularArray 需求:固定容量,到达上限后从头覆盖,支持 for-in、count、randomAccess。 步骤: 遵循 Collection 协议; 提供 startI
Swift 集合类型详解(二):自定义 Hashable、值语义与性能陷阱
为什么要“自定义”Hashable? 官方文档只告诉你“Set/Dictionary 的元素/键必须 Hashable”,却没说: 系统默认的哈希算法什么时候会“翻车”? 手写 hash(into:)
Swift 集合类型详解(一):Array、Set、Dictionary 全貌与选型思路
三种集合速览 类型 有序? 唯一? 键值对? 适用场景举例 Array ✅ ❌ ❌ 排行榜、聊天记录、播放队列 Set ❌ ✅ ❌ 去重标签、已读 ID 池、权限集合 Dictionary ❌ key
Swift 6 并发深渊:@unchecked Sendable 与“隐式 MainActor”如何合谋杀死你的 App
故事开场:一行“看似无害”的全局变量 Swift 6 编译器立刻翻脸: Static property 'sink' is not concurrency-safe because it is non
告别 UIKit 生命周期:SwiftUI 视图一生全解析——从 init 到 deinit 的“隐秘角落”
为什么 6 年后还要再聊 SwiftUI 生命周期? 2019 年 SwiftUI 发布时,我们像“翻译官”一样,把 UIKit 的 viewDidLoad、viewWillAppear 强行映射到新
Swift 中的基本运算符:从加减乘除到逻辑与或非
运算符(Operator)到底是什么? 运算符 = 用来「检查、改变、合并」值的特殊符号或短语。 操作数(Operand) = 被运算符影响的值。 按操作数个数分类: 一元(Unary):-a、!b、
Swift 中“特性开关”实战笔记——用编译条件+EnvironmentValues优雅管理Debug/TestFlight/AppStore三环境
为什么要“特性开关” 主干开发(trunk-based)要求频繁合入半成品代码,但又不希望用户踩雷。 同一套代码要在 Debug(调试)、TestFlight(内测)、App Store(正式)三种环
Swift 并发任务中到底该不该用 `[weak self]`?—— 从原理到实战一次讲透
为什么闭包里总写 [weak self] 成了肌肉记忆? 在 Swift 回调式 API 时代,我们被教育“只要闭包可能产生循环引用,就写 [weak self]”。 这个经验在 @escaping
Swift 初探:从变量到并发,一文带你零基础读懂官方 Tour
简单值(Simple Values) 常量与变量 编译器自动推断类型,也可以显式标注: 类型转换必须显式 字符串插值(推荐写法) 多行字符串 数组 & 字典 空数组、空字典写法: 控制流(Contro
下一页