深入理解 Swift Combine

摘要: Combine 文中写一些 Swift 方法签名时,会带上 label,如 subscribe(_ subscriber:),正常作为 Selector 的写法时会忽略掉 label,只写作 subscribe(_:) ,本文特意带上 label 以使含义更清晰。 Combine Framework 阅读全文
posted @ 2024-04-30 22:07 westwindrest 阅读(1262) 评论(0) 推荐(0) 编辑

在 SwiftUI 中使用 Metal Shader

摘要: 简介 从 iOS 17/macOS 14 开始,SwiftUI 支持使用 Metal shader 来实现一些特效。主要提供三个 View Modifier:colorEffect、 distortionEffect 和 layerEffect 。每个 modifier 的第一个参数是传入的 Sha 阅读全文
posted @ 2024-03-22 21:31 westwindrest 阅读(442) 评论(0) 推荐(1) 编辑

Swift Structured Concurrency

摘要: 异步函数 异步函数概念 异步和并发是两个不同的概念,并发(Concurrency)是指多个任务同时执行,这里的同时不是严格意义上的同一时刻,而是在稍大时间粒度上,多个任务可以同时推进,并发的实现可以是单线程,也可以是多线程、多核、多设备。 在 Swift 中,异步函数是一种特殊的函数,它可以在执行过 阅读全文
posted @ 2024-03-21 15:53 westwindrest 阅读(96) 评论(0) 推荐(0) 编辑

iOS Modern Collection View

摘要: TL;DR 使用的技术: Compositional layout + Diffable data source。iOS 14+。 创建 layout 以描述布局; 创建 dataSource 以提供数据和 view: 使用 CellRegistration 和 dequeueConfiguredR 阅读全文
posted @ 2023-04-09 11:35 westwindrest 阅读(247) 评论(0) 推荐(0) 编辑

SwiftUI 笔记

摘要: TextField 监听 lost focus 之前有一个初始化方法,传入一个 onEditingChanged closure,但这个方法废弃了,文档中也说了 alternative:使用 FocusState 来管理 focus 状态,即使用 focused(_:equals:) 来传入一个 B 阅读全文
posted @ 2022-07-19 10:31 westwindrest 阅读(70) 评论(0) 推荐(0) 编辑

日常问题及其解决方案

摘要: oh-my-zsh 在一些含有 git 的目录下运行非常慢 git config --add oh-my-zsh.hide-status 1 git config --add oh-my-zsh.hide-dirty 1 来源 阅读全文
posted @ 2022-05-05 09:40 westwindrest 阅读(31) 评论(0) 推荐(0) 编辑

一些 AppKit 的坑

摘要: NSTextField 在 NSTableView 中需要先点一次再点一次才能编辑、且 hover 时鼠标指针不变化 在 storyboard 里,将 NSTableView 的 Highlight 设置为 None NSTableCellView 动态高度实现 在 VC 里持有一个 measuri 阅读全文
posted @ 2022-01-10 13:06 westwindrest 阅读(103) 评论(0) 推荐(0) 编辑

【已失效】Xcode GUI 添加 SPM 依赖的时候访问不了 github,无视 git config proxy 配置解决方案

摘要: 此 openradar 中提出者指出了原因:Xcode 调用 libgit2 时传入了 GIT_PROXY_NONE,无视了 git config 中的 proxy 配置。作者说用了自己打的 libgit2 包可以解决问题,但没说具体怎么操作。 看了一下 libgit2 里的声明: /** * Do 阅读全文
posted @ 2021-12-22 12:43 westwindrest 阅读(598) 评论(0) 推荐(0) 编辑

C++ Concurrency in Action 读书笔记三:并发操作的同步

摘要: Chapter 4 并发操作的同步·Synchronizing concurrent operations 阅读全文
posted @ 2019-08-13 17:38 westwindrest 阅读(180) 评论(0) 推荐(0) 编辑

C++ Concurrency in Action 读书笔记二:用mutex互斥锁保护在线程间共享的数据

摘要: Chapter 3 线程间共享数据 3.2 用互斥锁保护共享数据 阅读全文
posted @ 2019-08-09 00:50 westwindrest 阅读(229) 评论(0) 推荐(0) 编辑