移动开发

子线程发出的通知,主线程如何接收处理

1.关键点是在主线程的runloop中加入一个machport2.在子线程中,1)将要发出的通知加入一个数组中,然后通过主线程中的machport发出消息2)在主线程中接收port来的消息,但其内部其实是访问主线程生成的数组(该数组在子线程中也能进行操作,怪不得要加锁)即可。3.注意在主线程中处理通知的要区分出来当前线程(通知的监听者还能处理不同线程的)4.NSMachPort是线程间通信的一种方

ThreadLocal 超强图解,这次终于懂了~

前言 大家好,我是小彭。 在前面的文章里,我们聊到了散列表的开放寻址法和分离链表法,也聊到了 HashMap、LinkedHashMap 和 WeakHashMap 等基于分离链表法实现的散列表。 今天,我们来讨论 Java 标准库中一个使用开放寻址法的散列表结构,也是 Java & Android “面试八股文” 的标准题库之一 —— ThreadLocal。 本文源码基于

IntelliJ IDEA / Android Studio 里直接跑 Cursor(不用来回切窗口)

最近Cursor用的飞起,但是调试代码还是在IDEA中比较顺手,所以最近的状态一直是:IDEA/AS 写代码 → 切 Cursor 聊天 → 再切回来改。切来切去,思路全没了。 于是我把 Cursor 的 cursor-agent 搬进 IDE 右侧面板,边看调试边聊天,顺手到不行,手感接近Curso

【OC】UIKit常用组件适配iOS 26

文章目录 UITabBarController 使用26的风格显示TabBar 在滑动时最小化TabBar 附加视图 控制组件 UIButton UISlider 其他方面 在开始之前,得先说说对于iOS 26的设计理念iOS 26最重要的就是引入了液态玻璃效果,液态玻璃结合了玻璃的光学特性和流动性。这种材料为控制和导航元素形成了一个独

Cell中重写systemLayoutSizeFittingSize再总结

image.png 之前记录systemLayoutSizeFitting在cell中使用 由上图可以看出systemLayoutSizeFittingSize方法在UITableView的heightForCell方法之后调用。 场景1:cell不嵌套UIScrollView(UITableView、UICollectionView) cell子视图如果只是一些普通UIView、UI

ElasticSearchTemplate实现给定经纬度的“离我最近”排序/按距离排序

按步骤来吧。 第一步,准备要使用此排序方式的、要存入ES的Bean,添加位置信息属性,并加 @GeoPointField 。位置属性的类型为GeoPoint。正常情况下应该是用SpringData包下的GeoPoint类型,但是使用期间会出现各种无法判断的错误,所以我们一般自己创建一个GeoPoint类,这个类需要有lat(纬度)和lon(经度)这两个属性、两个构造器(空参、全参),和属性的get

Android动态修改vector颜色

android为我们是提供了在代码中动态设置 vector 的颜色的方法。 这是一个 svg 类型的返回 icon,取名icon_back.xml,可以直接放在drawlable文件夹中 <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" andro

Lifecycle的使用

前言 作为jetpack的第一篇,我还会附带解释下一些比较模糊的概念。下面来讲解下jetpack相关知识。 今天涉及知识: jetpack与AndroidX Lifecycle用来做什么 Lifecycle使用步骤 结合具体例子讲解Lifecycle的使用 4.1 添加Lifecycle依赖 4.2 在 Activity 布局中添加自定义控件的引用 4.3 在 Activity 中添加生

OpenAI Codex 国内使用完全指南:Windows/macOS/Linux 三平台详细安装配置教程(现在最新的有gpt-5.3-codex和gpt-5.4)

摘要:本文是国内开发者使用 OpenAI Codex 的终极配置指南,涵盖 Windows、macOS、Linux 三大主流操作系统的完整安装流程。通过 API独立站 解决网络访问难题,手把手教你完成从环境准备到实战使用的全部步骤,让你无需复杂操作即可体验 AI 编程的强大能力。如果你更多是学习编程语法,使用对话服务也是不