- 博客(245)
- 收藏
- 关注
原创 值类型与引用类型:struct 与 class 的分工
Swift中的struct与class核心区别在于值语义与引用语义。struct是值类型,赋值/传参产生独立副本;class是引用类型,多个变量可指向同一实例。优先使用struct,除非需要引用身份、单继承、deinit或与ObjC互操作时才用class。class实例由ARC管理生命周期,而struct本身不参与引用计数,但若包含引用类型字段仍会触发ARC。Swift不支持多重继承,通过协议组合实现类似功能。典型场景:领域模型、不可变数据用struct;需要共享状态、UIKit组件用class。注意str
2026-04-02 12:59:12
37
原创 Superpowers --让 AI 编程从“实习生”变成“首席架构师”
Superpowers 的核心价值不是“让 AI 写更多代码”,而是“让 AI 写对代码”。它通过强制工程纪律,把 AI 从“情绪不稳定的实习生”变成了“训练有素的工程师”。适合谁用任何使用 AI 编程助手的开发者希望代码质量更稳定的团队做复杂项目、需要长期维护的开发者想学习正规软件工程流程的新手(AI 会手把手教你 TDD、代码审查等)一句话总结Superpowers 不是教你“如何用 AI 写代码”,而是让 AI 学会“如何像专业工程师一样工作”。
2026-04-01 22:20:05
131
原创 Claude Code 本地 Ollama 集成:从零到跑通的完整记录
本文档详细记录了将ClaudeCode工具的底层模型从远程Anthropic Claude替换为本地Ollama(qwen3.5:9b)的全过程。主要工作包括:1)创建Ollama适配器处理API格式转换;2)解决print模式下的ColorDiff和SandboxManager方法缺失问题;3)克服REPL模式中的6层调试难题,包括并发API调用阻塞、设置对话框拦截、session hooks挂起等;4)最终发现并修复了由modifiers-napi缺失导致的Enter键异常被静默吞没的问题。整个过程采用
2026-04-01 22:02:39
199
原创 Claude Code 源码架构与模块功能详解
本文档分析了ClaudeCode项目的技术架构与核心模块。该项目是基于Bun运行时和TypeScript开发的AI编程助手CLI工具,主要功能包括本地工作区交互、代码修改、命令执行、多代理协作等。架构分为入口层、表现层、交互层、编排层、工具层和服务层。核心模块包括查询引擎(处理用户/模型消息循环)、工具系统(注册和执行各类工具)、命令系统(实现斜杠命令功能)以及远程协作组件。项目采用React+Ink构建终端UI,通过Zod进行校验,并支持特性开关实现功能门控。文档详细梳理了各模块职责和协作关系,为理解项目
2026-04-01 16:49:06
202
原创 YOLO26 接入实时视频 - GPU 加速2
摘要:该代码实现了使用OpenCV调用iPhone摄像头并进行实时目标检测的功能。通过设置硬件加速解码和帧缓冲区优化,将延迟稳定在60ms。使用YOLOv8模型进行目标检测,并集成ObjectCounter进行目标计数。代码包含显存清理机制,采用MPS设备加速推理,支持自定义检测区域和参数调整。程序运行时会显示实时画面和性能指标,按q键可退出程序。
2026-01-18 09:49:19
64
原创 YOLO26 接入实时视频 - GPU 加速
本文介绍了使用GPU加速优化YOLO模型识别性能的过程。初始CPU运行时,不同大小模型(5.5M-118.7M)的识别速度在50-170ms之间。通过GPU优化后,最大模型也能稳定在60ms。代码展示了使用OpenCV调用iPhone摄像头,配置硬件加速解码,并集成YOLO模型进行实时目标检测的实现方法,包括设置检测区域、置信度阈值等参数。最终实现了流畅的视频流处理和按需退出的功能。
2026-01-18 08:49:44
49
原创 YOLO26 全场景部署使用指南
YOLO26部署指南摘要:本文详细介绍了新一代目标检测器YOLO26的全平台部署方案。YOLO26具有端到端部署友好、边缘设备适配和性能均衡三大优势,相比前代延迟降低42%,小目标检测精度提升2.8%。指南涵盖服务器(NVIDIA显卡)、边缘设备(Jetson系列)、CPU及Mac(Intel/Apple Silicon)四大场景,提供从环境配置、模型导出到实战部署的完整流程。重点包括:1)严格匹配软硬件依赖版本;2)ONNX/TensorRT格式转换优化;3)各平台专属性能调优技巧;4)常见问题解决方案。
2026-01-18 08:30:30
1243
原创 YOLO26 接入实时视频
1. yolo 26 安装方便2. 占用cpu更低3. 不同模型识别速度不同,模型越大识别越慢yolo26n.pt 最小(5.5M),识别最快, 在 50ms左右yolo26s.pt 20.4M, 在75ms左右yolo26m.pt 44.3M, 在120ms左右yolo26l.pt 53.2M,在150ms左右yolo26x.pt 118.7M,在170ms左右。
2026-01-17 07:56:44
95
原创 python - 贪吃蛇
本文介绍了一个使用Python和Pygame库开发的贪吃蛇游戏。游戏包含完整的游戏逻辑、图形界面和交互功能,支持三种难度级别(简单/普通/困难),具有蛇身绘制、食物生成、碰撞检测等功能。游戏界面包括主菜单、游戏区域和UI信息显示,实现了蛇的移动控制、分数计算、最高分记录等核心玩法。此外,游戏还包含暂停功能、游戏结束界面和音效支持,提供了完整的游戏体验。该程序采用面向对象设计,通过枚举类管理游戏状态和方向,使用Pygame的绘图功能实现视觉效果,是一个结构清晰、功能完善的经典贪吃蛇游戏实现。
2026-01-05 19:53:12
104
原创 C - 内存缓存池2
本文实现了一个高性能的分级内存池管理系统,具有以下特点:1)采用多级内存池设计,支持16-512字节不同大小的内存块分配,减少内存碎片;2)实现16字节内存对齐,提升访问效率;3)通过互斥锁保证多线程安全;4)内置内存泄漏检测功能,记录分配地址、线程ID和时间戳;5)提供详细的内存使用统计。系统通过空闲链表管理内存块,支持动态分配和释放,适用于高并发场景。测试代码模拟了多线程环境下的内存操作,验证了系统的稳定性和泄漏检测功能。
2026-01-04 20:25:00
276
原创 C - 内存缓存池
该程序实现了一个内存缓存池(MemPool)功能,包含初始化、分配、释放和销毁等操作。内存池通过链表管理空闲内存块,每次分配从链表头部取出空闲块,释放时将块重新插入链表头部。主要功能包括:初始化时分配连续内存并构建空闲链表;分配时从链表头取出块;释放时将块重新加入链表;可打印内存池状态信息。程序通过预分配内存块减少频繁内存分配开销,适合需要高效内存管理的场景。测试代码演示了初始化10个块、分配3个块、释放1个块的过程,并输出内存池状态。
2026-01-04 19:09:41
94
原创 Mac 真人手势识别切水果游戏
本文介绍了一个基于计算机视觉的切水果游戏实现方案。系统使用Mac Mini和iPhone摄像头作为硬件环境,采用MediaPipe框架进行手部和面部检测。游戏通过识别食指作为"刀"来切割随机生成的水果,同时检测玩家微笑表情以获得分数加成。代码实现了水果生成、切割检测、分数计算、连击系统等功能,并包含视觉特效如烟花和果汁溅射效果。游戏提供多种控制选项,支持显示/隐藏检测标记,具有2分钟限时模式。该系统展示了计算机视觉技术在交互式游戏中的应用潜力,通过优化检测算法提高了小水果识别的准确性。
2025-12-13 22:37:34
418
原创 Swift - 引用计数
Swift 和 Objective-C 都使用 ARC 来管理对象的内存,确保在没有强引用时自动释放对象。在 Swift 中,使用 weak 和 unowned 修饰符来处理弱引用和循环引用,而在 Objective-C 中使用 __weak 和 __unsafe_unretained。Swift 的语法更简洁,且类型安全性更高,使得内存管理更加直观。通过理解引用计数的机制和两者之间的区别,开发者可以更有效地管理内存,避免内存泄漏和其他相关问题。
2025-02-15 15:28:13
637
原创 Swift - 方法派发机制
静态派发:适用于值类型、Final 类和方法,性能最高。动态派发:适用于类的继承和重写,通过虚表派发。协议派发:适用于协议方法,通过协议见证表派发。消息转发:适用于与 Objective-C 交互和动态方法解析。理解这些派发机制有助于编写高效且符合预期的 Swift 代码。
2025-02-10 22:16:06
1320
1
原创 使用deepseek写一个飞机大战游戏
需要将玩家、敌人和子弹的图像文件(player.png, enemy.png, bullet.png)放在与脚本相同的目录中。这个示例是一个简单的基础版本,可以根据需求进行扩展和优化。:在运行代码之前,需要先安装。
2025-02-09 19:06:27
412
原创 iOS - 底层实现中涉及的类型
/ 基础类型// 指针大小的无符号整数// 指针差值类型// 32位无符号整数// 64位无符号整数// 掩码类型// 用于位掩码操作。
2025-01-15 11:28:31
809
原创 iOS - 自定义引用计数(MRC)
/ 检查类是否实现了自定义的引用计数方法// 调用路径// 使用系统默认的引用计数机制} else {// 使用类自定义的引用计数机制@end。
2025-01-06 22:05:16
593
原创 iOS - AutoreleasePoolPage 节点为空时的处理逻辑
【代码】iOS - AutoreleasePoolPage 节点为空时的处理逻辑。
2025-01-06 21:46:06
594
原创 iOS - viewWillAppear 和 viewDidAppear 为什么不在同一个 runloop中执行?
【代码】iOS - viewwillappear 和 viewdidappear 在不同的 runloop中执行?
2025-01-06 21:37:09
282
原创 iOS - 线程与AutoreleasePoolPage
1. key 的作用作为索引,用于在线程的特定数据数组中定位数据全局唯一,所有线程共享2. 线程隔离每个线程维护独立的存储空间相同的 key 在不同线程中映射到不同的值3. 内存管理线程退出时自动调用析构函数自动清理线程特定数据4. 性能考虑快速访问:O(1) 的时间复杂度空间效率:每个线程只存储使用的数据这就是为什么使用同一个 key 可以在不同线程中获取不同的 page 的原理。
2025-01-06 21:26:37
643
原创 iOS - AutoreleasePoolPage 内存为什么为4K?
选择4KB页面作为存储单元的原因:1. 系统兼容性符合操作系统内存管理单位优化的内存分配和回收2. 性能考虑更好的缓存利用提高内存访问效率3. 资源平衡合理的存储容量可控的内存使用4. 实用性满足大多数使用场景简化内存管理这种设计在性能和资源使用之间取得了很好的平衡。
2025-01-06 14:08:56
341
原创 iOS - AutoreleasePool
这里涵盖了AutoreleasePool 的主要实现细节和使用注意事项。理解这些内容对于正确使用AutoreleasePool和优化内存管理非常重要。
2025-01-06 14:03:41
668
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅