首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
后端
前端
Android
iOS
人工智能
开发工具
代码人生
阅读
13-3.【OC】【性能】在大量方法调用场景下,如何分析消息发送是否成为性能瓶颈?
在处理高频、大量的 Objective-C 方法调用时,单纯猜测 objc_msgSend 是瓶颈往往是不准确的。我们需要通过定量测量、缓存命中率分析以及汇编级追踪来确定瓶颈所在。 以下是针对消息发送
13-2.【OC】【性能】objc_msgSend 的调用成本到底有多高?
关于 objc_msgSend 的调用成本,我们不能只看一个绝对的数值,而要从它的查找链路、汇编优化以及与静态派发的对比三个维度来看。 简单来说:在缓存命中的情况下,它的开销极低(几纳秒);但在缓存未
13-1.【OC】【性能】Objective-C 的性能瓶颈通常出现在什么地方?如何优化?
Objective-C 作为一门极度依赖 Runtime(运行时) 的动态语言,其性能瓶颈主要源于其“高度动态化”带来的开销。相比于 C++ 或 Swift 的静态派发,Objective-C 许多决
12-10.【OC】【Swift+OC 混编】Swift 与 OC 混编项目中最常见的坑有哪些?
在 Swift 与 Objective-C 的混编项目中,开发者最常遇到的“坑”往往隐藏在动态性、内存管理语义以及编译器自动翻译的细节中。 以下是整理出的混编项目五大高频陷阱及解决方案: 1. 命名冲
攻克 Java 异常难题:典型异常解析、最佳处理方案与设计模式实践
攻克 Java 异常难题:典型异常解析、最佳处理方案与设计模式实践 在 Java 开发中,异常处理是衡量代码健壮性、可维护性的核心指标之一。多数开发者在入门阶段仅能实现“捕获异常”的基础操作,却常常陷
12-9.【OC】【Swift+OC 混编】OC 调用 Swift 方法时,是否存在 retain / release 异常?
这是一个非常敏锐的问题。简单来说:在正常桥接(@objc)的情况下,不会出现 retain/release 异常。 这是因为 Swift 编译器在生成 Thunk(存根函数) 时,已经通过一套名为 “
12-8.【OC】【Swift+OC 混编】Swift ABI 稳定后,对 OC 调用有什么影响?
Swift ABI(应用二进制接口)稳定是 Swift 发展史上的分水岭。虽然它主要解决了 Swift 库之间的兼容性问题,但对于 Objective-C 调用 Swift 的底层链路也产生了深远的影
12-7.【OC】【Swift+OC 混编】OC 能访问 Swift enum / struct 吗?
简单直接的回答是:不能直接访问,但可以通过“桥接”变通。 Objective-C 的底层架构(Runtime)是基于 C 语言指针和固定内存布局的,而 Swift 的 struct 和 enum(尤其
给 OpenClaw 装一个学习系统
给 AI Agent 装一个系统化的学习体系,让它不再用过就忘。知识图谱 + 深度笔记 + 实战复盘 + 每周回顾。
12-6.【OC】【Swift+OC 混编】Generated Header 是如何生成的?
在 Swift 与 Objective-C 的混编体系中,Generated Header(即著名的 ProjectName-Swift.h)并不是一个简单的文本拷贝,而是由 Swift 编译器(sw
321. Java Stream API - 使用 StringBuffer 收集原始类型流
321. Java Stream API - 使用 StringBuffer 收集原始类型流 在 Java 的 Stream API 中,我们常常使用 Collectors.joining() 方法将
12-5.【OC】【Swift+OC 混编】Swift protocol 标记 @objc 后,在 OC 端如何调用?
当你在 Swift Protocol 前加上 @objc 后,它在 Objective-C (OC) 端的使用体验几乎与原生的 NSProtocol 一致。由于编译器生成了桥接元数据,OC 可以通过标
12-4.【OC】【Swift+OC 混编】Swift 方法被 @objc 标记后,编译器插入了哪些 Runtime 信息?
当你在 Swift 方法前加上 @objc 标记时,编译器(Swiftc)不再仅仅生成一段高效的二进制机器码,而是会在你的二进制文件中注入一套复杂的“元数据链”,以确保 Objective-C Run
12-3.【OC】【Swift+OC 混编】为什么 Swift 泛型在 Objective-C 中消失?
在 Objective-C 中,你可能会发现 Swift 的泛型类变成了“空壳”或者干脆消失了。这背后的根本原因在于 Swift 的“强类型特化”设计 与 Objective-C 的“弱类型集合”设计
12-2.【OC】【Swift+OC 混编】Swift 类型如何映射到 Objective-C?
Swift 类型映射到 Objective-C 的过程是由 Swift 编译器(Clang 与 Swift 编译器前端)通过生成的 -Swift.h 桥接头文件 自动完成的。 由于 Swift 是静态
12-1.【OC】【Swift+OC 混编】@objc 和 dynamic 有什么区别?
在 Swift 中,@objc 和 dynamic 都与 Objective-C 运行时(Runtime)有关,但它们的职责完全不同: @objc 负责“可见性”,而 dynamic 负责“派发方式”
11-5.【OC】【protocol】Protocol extension 默认实现的静态派发原理是什么?
在 Swift 中,Protocol Extension(协议扩展)提供的默认实现究竟是静态派发还是动态派发,取决于该方法是否在 Protocol 的主定义(Declaration) 中声明。 这是一
11-4.【OC】【protocol】Swift protocol 中的 associatedtype 和泛型约束如何映射到 runtime?
Swift 的协议与 Objective-C 协议最大的不同在于:OC 协议是动态的、基于消息的,而带 associatedtype 的 Swift 协议(通常被称为 PATs, Protocols
11-3.【OC】【protocol】Swift Protocol 与 OC Protocol 的桥接原理是什么?
Swift 与 Objective-C (OC) Protocol 的桥接是 iOS 混编开发的核心。其底层原理可以概括为 “编译器自动合成转换器(Thunking)” 与 “运行时元数据对齐” 。
11-2.【OC】【protocol】Protocol 在 runtime 中是如何表示的?
在 Objective-C Runtime 中,Protocol(协议)被视为一种特殊的对象。它不像 Class 那样拥有自己的实例变量空间,而是一套关于方法的“蓝图”或“描述符” 。 在底层,协议由
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30