首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Swift学习专栏
unravel2025
创建于2022-11-28
订阅专栏
记录本人在学习Swift过程中的精彩文章或者各种小妙招等等,内容来自 https://www.swiftwithvincent.com/、https://sarunw.com/posts/、 等博客
等 67 人订阅
共135篇文章
创建于2022-11-28
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
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
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…… 泛型版本: 泛型约束:只支持“可比较”类型 多占
下一页