首页
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 的 `@autoclosure`:把“表达式”变“闭包”的延迟利器
什么是 @autoclosure? 一句话:把“传入的表达式”自动包成“无参闭包”,实现延迟求值(lazy evaluation)。 语法糖级别:调用方完全无感,只需像传普通值一样写表达式;函数内部拿
@Observable 遇上属性包装器:一键绕过‘计算属性’禁令的 Swift 5.9 实战技巧
在 Swift 5.9 引入的 @Observable 宏(Observable framework)让“全部属性默认被观察”成为可能,但也带来了一个副作用: 下面给出原因剖析 + 最小修复示例 +
如何绕过“Extensions must not contain stored properties”错误
为什么 Swift 禁止扩展里存值? Swift 扩展(extension)不能增加存储属性,原因有三: 内存布局已确定 类/结构体的大小在编译期就固定,随意加字段会破坏 ABI。 类型安全 允许多个
彻底搞懂 Swift 的 Any、AnyObject、any
一张速查表先拎清 名称 具体类型 能容纳 典型场景 Swift 版本 Any 顶层类型(具体类型) 任意值(含函数、元组、struct、class) 与旧 API 交互、极少数极端动态场景 1.0+
OptionSet vs Enum:Swift 中如何优雅地表达“多选”?
两种“多选”方案的基因差异 维度 OptionSet Enum + Set 底层模型 位图(bitset) 哈希集合(HashSet) 存储大小 固定位宽(UInt8/Int/UInt64) 动态哈希
Swift 的 Optional.take():一次性消费值的神器
什么是 take()? take() 是 Swift6 标准库提供的 Optional 实例方法: “如果有值就返回它,同时把自己置为 nil;如果已经是 nil 就返回 nil。” 等价于“原子地消
打造零泄漏的 Swift 代码:三套实用工具完整指南
为什么需要这三件套? 痛点 工具 一句话作用 保留循环导致 Coordinator/VM 不释放 MemoryLeakMonitor 运行时断言实例数量 Delegate 数组、观察者列表强引用 @W
深入理解 Swift 的 `withExtendedLifetime`:原理、场景与实战
为什么要延长对象生命周期? Swift 的 ARC(自动引用计数) 会在最后一次强引用解除时立即释放对象。在绝大多数情况下,这是正确的行为。 但在以下场景,“立即释放”反而会导致崩溃或逻辑错误: C/
深入理解 Swift `@resultBuilder`:从 SwiftUI 到通用 DSL 的完全指南
一句话总结 @resultBuilder 是一套编译期 DSL 引擎:通过在 Builder 类型里实现若干静态方法,把“多行表达式”在编译期重写成“单个结果值”。 SwiftUI 的 @ViewBu
深入理解 SwiftUI 中的 @ViewBuilder:从语法糖到实战
什么是 @ViewBuilder? @ViewBuilder 是 SwiftUI 提供的结果构建器(Result Builder) 之一,它让我们可以用 声明式语法 组合多个视图,而无需显式使用 re
Swift 中的可调用类型:彻底搞懂 `callAsFunction`、`@dynamicCallable` 与 `@dynamicMemberLookup`
在 Swift 5.2 及以后,语言引入了几组看似“语法糖”的特性: callAsFunction:让实例像函数一样被调用 @dynamicCallable:让实例支持动态参数调用(类似 Python
Swift 中 Enum 与 Struct:如何为状态建模选择最合适的工具
在日常开发中,我们经常需要为「状态」或「配置」建模。Swift 提供了两种最常见的值类型: enum(枚举) struct(结构体) 它们都能表达“一组相关的数据”,但设计理念完全不同。选错工具往往会
深入理解 Swift 的 `@dynamicCallable`:让你的类型像函数一样被调用
在 Swift 中,我们通常使用方法调用来与对象交互。但你是否想过,能否像调用函数一样直接调用一个结构体或类的实例?比如 myObject("hello") 而不是 myObject.someMeth
Swift 数据容器全景手册:Sequence、Collection、Set、Dictionary 一次掌握
两个顶层协议:Sequence vs Collection 特性 Sequence Collection 顺序访问 ✅ 单向迭代 ✅ 双向/随机访问 可遍历多次 ❌ 不一定 ✅ 总是 下标访问 ❌ 无
深入理解 SOLID 原则:用 Swift 编写优雅、可维护的代码
什么是 SOLID? SOLID 是面向对象设计的五大原则,帮助开发者写出高内聚、低耦合、易测试、可扩展的代码。 Single Responsibility Principle(单一职责) Open/
Swift 并发全景指南:Thread、Concurrency、Parallelism 一次搞懂
为什么要关心这些概念? 响应式 UI:主线程阻塞 = 卡死界面。 高性能:多核 CPU 不并行 = 浪费算力。 正确性:数据竞争 = 闪退或脏数据。 Thread:程序的最小执行单元 什么是 Thre
Swift 并发模型深度解析:Singleton 与 Global Actor 如何抉择?
在 Swift 的世界里,Singleton(单例模式) 是我们最熟悉的老朋友,而 Global Actor(全局 Actor) 则是 Swift 5.5 引入并发模型后的新伙伴。两者都能帮我们管理全
Swift Global Actor 完全指南
什么是 Global Actor? 概念 一句话解释 Actor 一种引用类型,串行化地执行对其状态的访问,天然线程安全。 Global Actor 全局唯一的 Actor,可被标注到 任意函数 /
Swift 计算属性(Computed Property)详解:原理、性能与实战
什么是计算属性? Swift 中的属性分为两大族谱: 类型 描述 存储值 Stored Property(存储属性) 保存一个固定的值,最常见 ✅ Computed Property(计算属性) 每次
Swift Property Wrapper:优雅地消除样板代码
为什么会出现 Property Wrapper? 在业务代码里,我们经常写出大量 重复的模式: 当属性越来越多时,样板代码 呈指数级增长。 Apple 在 WWDC 2019 引入 Property
下一页