4-1.【协议导向编程】什么是协议导向编程(POP),它解决了传统面向对象设计中的哪些问题? 掘金 iOS 项阿丑 2026年1月29日 11:05 1️⃣ 什么是协议导向编程(POP) 协议导向编程 是 Swift 提出的编程范式,它的核心思想是: 通过协议(protocol)定义接口和行为,而不是依赖类继承。 通过协议扩展(protocol e
Neo-Cupertino 档案:撕开 Actor 的伪装,回归 Non-Sendable 的暴力美学 掘金 iOS 大熊猫侯佩 2026年1月29日 10:18 窗外的霓虹灯光透过雨幕,在 Jet 的合成皮风衣上投下斑驳的阴影。他抿了一口手中的高浓度咖啡因液,看着面前焦头烂额的 Nova。 “我的编译器又在尖叫了,” Nova 把全息屏幕推向 Jet,上面红色
赛博深渊(上):用 Apple Foundation Models 提炼“禁忌知识”的求生指南 掘金 iOS 大熊猫侯佩 2026年1月29日 10:16 🍎 引子 新九龙城的雨从未停过。霓虹灯的废气在湿漉漉的街道上晕染开来,像极了那个死于代码过载的倒霉蛋老王流出的脑浆。 在贫民窟第 404 区的一间昏暗安全屋里,一名代号为“老 K”的黑客正对着一块发着
NSProcessInfoThermalState 的作用 掘金 iOS iOS在入门 2026年1月28日 22:59 NSProcessInfoThermalState 的作用 NSProcessInfoThermalState 是一个用于表示设备散热状态的枚举类型。它帮助应用程序了解设备当前的温度水平,从而采取适当
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 开发中