3-27.【函数式编程】讨论 Combine 的 Publisher 如何体现 Functor / Monad 特性。 掘金 iOS 作者 项阿丑 2026年1月28日 17:00 1️⃣ Functor 特性在 Publisher 中的体现 Functor 核心:能够把函数映射到容器/上下文中的值,同时保持结构不变。 在 Combine 中: Publisher 可以看作一个
2-6.【Concurrency】TaskGroup 的设计目的是什么?它如何保证并发安全? 掘金 iOS 作者 项阿丑 2026年1月28日 14:11 一句话先给结论 或者更狠一点的说法: 1️⃣ 为什么需要 TaskGroup?(设计动机) 先看一个“天真实现”的问题: ❌ 问题一堆: results 有数据竞争 子任务生命周期不受控 取消无法统一
2-5.【Concurrency】Task 和 DetachedTask 有什么区别?使用场景各是什么? 掘金 iOS 作者 项阿丑 2026年1月28日 14:11 一句话总览 1️⃣ 最重要的区别(先看这个) 维度 Task {} Task.detached {} 是否有父 Task ✅ 有 ❌ 没有 继承取消状态 ✅ ❌ 继承优先级 ✅ ❌ 继承 Task-l
2-4.【Concurrency】Continuation 是什么?与 async/await 有何关系? 掘金 iOS 作者 项阿丑 2026年1月28日 14:11 在 Swift(乃至整个并发世界)里: 我会按 概念 → Swift 里的具体形态 → 与 async/await 的关系 → 常见误区 来讲。 一句话定义(先刻在脑子里) 换句话说: 1️⃣ 直观理
1-30.【GCD】GCD 如何缓解优先级反转?开发者还能做什么? 掘金 iOS 作者 项阿丑 2026年1月28日 11:31 1️⃣ GCD 内部缓解机制:QoS 继承 1.1 原理 问题来源: 高 QoS 任务等待低 QoS 队列中的任务或锁 如果低 QoS 任务占用线程 → 高 QoS 任务被延迟 典型场景:串行队列 +
1-24.【GCD】QoS 和线程优先级是 1:1 映射的吗? 掘金 iOS 作者 项阿丑 2026年1月28日 11:27 QoS 和线程优先级并不是 1:1 映射,它们只是相关,但机制上存在差别。下面详细解释: 1️⃣ 核心结论 换句话说: QoS → 告诉系统“任务重要性”,GCD 根据这个在全局线程池中选择或创建线程
1-22.【GCD】使用 DispatchSource 时最容易踩的坑有哪些? 掘金 iOS 作者 项阿丑 2026年1月28日 11:27 1️⃣ 忘记 resume() 坑:创建 DispatchSource 后必须调用 resume() 才会启动事件源 原因:DispatchSource 默认是暂停状态 后果:事件永远不会触发 解决:
1-13.【GCD】dispatch_barrier 的作用和使用场景是什么? 掘金 iOS 作者 项阿丑 2026年1月28日 09:48 1️⃣ 基本作用 本质:把并发队列临时变成“串行屏障” 保证 读-写或写-写安全,同时不阻塞其他并行队列的线程资源 2️⃣ 工作机制 假设有一个并发队列 concurrentQueue: 执行顺序:
1-6.【GCD】自定义队列在底层是如何映射到全局队列的? 掘金 iOS 作者 项阿丑 2026年1月28日 09:46 下面我们从 结构 → 映射路径 → 调度细节 → 常见误解 一层层拆。 1️⃣ 核心模型:Queue ≠ Thread(再强调一次) 在 GCD 里: 队列(DispatchQueue) : 👉 任务
1-5.【GCD】全局并发队列(global queue)有多少个?是如何区分的? 掘金 iOS 作者 项阿丑 2026年1月28日 09:45 ✅ 结论版(先背这个) 1️⃣ 到底有多少个全局并发队列? 从 GCD 语义层面看: 🧩 一共 6 种 QoS,对应 6 组全局并发队列 QoS Swift 枚举 用途 User Interactiv
1-3.【GCD】DispatchQueue 的底层数据结构是什么? 掘金 iOS 作者 项阿丑 2026年1月27日 17:36 它是一个复杂的 C 结构体,集成了任务队列、线程管理、性能优化等多个子系统。 核心数据结构:dispatch_queue_s 详细结构解析 1. 多态设计:dispatch_object 2. 任务队
1-2.【GCD】GCD 是如何管理线程池的?线程是谁创建的? 掘金 iOS 作者 项阿丑 2026年1月27日 17:36 线程创建者:GCD 自己 GCD 是线程的实际创建者,但不是随意创建,而是通过高度优化的机制: GCD 线程池的智能管理 1. 按需创建,延迟销毁 2. 线程复用策略 线程池的关键参数和策略 1. 线
1-1.【GCD】DispatchQueue 本质上是什么?它和线程是什么关系? 掘金 iOS 作者 项阿丑 2026年1月27日 17:35 DispatchQueue 是 GCD(Grand Central Dispatch)的核心抽象,它本质上是一个 任务调度管理器,而不是线程本身。 本质特性 1. 任务队列 存储要执行的任务(闭包或函
Skip 开源:从“卖工具”到“卖信任”的豪赌 -- 肘子的 Swift 周报 #120 掘金 iOS 作者 东坡肘子 2026年1月27日 08:13 本期聚焦 Skip 全面开源,转换商业模式,其他内容涵盖 SwiftData 数据迁移、SwiftUI 架构、Swift 嵌入式进展、AI 客户端和 Agent 管理工具等。
Swift 常用框架Kingfisher、KingfisherWebP详解 掘金 iOS 作者 Haha_bj 2026年1月26日 18:00 1.1 什么是 Kingfisher 、KingfisherWebP Kingfisher 是一个功能强大的 Swift 库,专门用于处理图像的下载、缓存和展示。目前已成为 iOS/macOS 开发中
深入理解 WKWebView:代理方法与 WKWebView 生命周期的执行顺序 掘金 iOS 作者 江东小bug王 2026年1月26日 14:58 在 iOS 开发中,`WKWebView` 是构建混合应用(Hybrid App)的核心组件。它基于现代 WebKit 引擎,性能优异、安全性高,但其复杂的生命周期机制也让不少开发者感到困惑——尤其是当页面加载失败时,错误回调到底在哪个阶段触发?
__CFRunLoopDoSources0函数详解 掘金 iOS 作者 iOS在入门 2026年1月26日 14:11 __CFRunLoopDoSources0 函数逐行注释 函数概述 __CFRunLoopDoSources0 是 RunLoop 中负责处理 Source0 事件源的核心函数。Source0 是需要
星际穿越:SwiftUI 如何让 ForEach 遍历异构数据(Heterogeneous)集合 掘金 iOS 作者 大熊猫侯佩 2026年1月26日 13:39 🌌 引子:红色警报 公元 2077 年,地球联邦主力战舰“Runtime 号”正在穿越 Swift 5.7 星系。 舰桥上,警报声大作。 “舰长亚历克斯(Alex),大事不妙!前方出现高能反应,我们的
越狱沙盒:SwiftUI fileImporter 的“数据偷渡”指南 掘金 iOS 作者 大熊猫侯佩 2026年1月26日 13:34 引子 2077 年,新西雅图的地下避难所。 Neo 盯着全息屏幕上那行红色的 Access Denied,手里的合成咖啡早就凉透了。 作为反抗军的首席代码架构师,他此刻正面临着一个令人头秃的难题:如