logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

iOS/Swift:深入理解iOS CoreText API

文章摘要: 本文介绍了iOS/macOS中的CoreText排版引擎,重点解析了其核心概念和API。内容涵盖CTFramesetter、CTFrame、CTLine、CTRun等层级结构,详细说明了各模块的功能与关联,并通过代码示例演示了CTFramesetter创建文本框架、计算文本尺寸等关键操作。文章还展示了实际应用场景,如自适应高度富文本视图、圆形路径文字排版和文本分页效果,为开发者实现自定

文章图片
#ios#swift#开发语言
Rust RefCell 多线程读为什么也panic了?

本文通过Rust代码实例揭示了RefCell在多线程环境中的隐患:看似安全的并发读操作也会panic。作者发现即使只调用borrow(),由于RefCell内部使用非原子计数器跟踪借用状态,多线程访问时会导致计数器竞争,触发BorrowError。这解释了为何单纯的多线程读操作也会违反借用规则。文章最后预告将在公众号探讨Swift中类似情况的安全性。

文章图片
#rust#开发语言#ios +1
精读GitHub - swift-markdown-ui

Swift-MarkdownUI 是一个用于在 SwiftUI 中渲染和自定义 Markdown 文本的开源库,支持 GitHub 风格 Markdown 规范,具有强大的主题自定义能力。该库提供多种使用方式,包括直接解析 Markdown 字符串或通过 DSL 语法构建内容,支持样式覆盖和主题替换。其架构分为解析器(基于 cmark-gfm)、渲染器、主题系统和 DSL 构建器四部分,将 Mar

文章图片
#swift#ios#swiftui +1
Swift 多线程读变量安全吗?

本文对比了Rust和Swift在多线程读取变量时的安全性差异。通过分析Swift源码发现,Swift通过原子操作保证引用计数的线程安全:swift_retain和swift_release都采用原子读写和CAS操作更新引用计数,其中release还使用memory_order_release防止指令重排。这些机制确保了Swift在多线程环境下安全读写变量而不会崩溃,与Rust中RefCell的行为

#swift#开发语言#ios +1
Vibe Coding 实战!花了两天时间,让 AI 写了一个富文本渲染引擎!

摘要:本文记录了使用Claude AI从零开发iOS富文本渲染引擎的全过程。通过Prompt驱动,在两天内实现了支持文本样式、附件混排、异步排版等功能的引擎,花费约50美元。文章详细介绍了项目初始化、技术选型(基于CoreText)、架构设计(ElementTree/LayoutTree/RenderTree三棵树模型)及开发流程,包括让AI编写代码、修复Bug等环节。作者总结了Claude AI

文章图片
#人工智能#ios#swift
Swift 多线程读变量安全吗?

本文对比了Rust和Swift在多线程读取变量时的安全性差异。通过分析Swift源码发现,Swift通过原子操作保证引用计数的线程安全:swift_retain和swift_release都采用原子读写和CAS操作更新引用计数,其中release还使用memory_order_release防止指令重排。这些机制确保了Swift在多线程环境下安全读写变量而不会崩溃,与Rust中RefCell的行为

#swift#开发语言#ios +1
Vibe Coding 实战!花了两天时间,让 AI 写了一个富文本渲染引擎!

摘要:本文记录了使用Claude AI从零开发iOS富文本渲染引擎的全过程。通过Prompt驱动,在两天内实现了支持文本样式、附件混排、异步排版等功能的引擎,花费约50美元。文章详细介绍了项目初始化、技术选型(基于CoreText)、架构设计(ElementTree/LayoutTree/RenderTree三棵树模型)及开发流程,包括让AI编写代码、修复Bug等环节。作者总结了Claude AI

文章图片
#人工智能#ios#swift
到底了