CnOps 智能运维与可观测社区
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题
导航菜单
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题

CnOps 智能运维与可观测社区

愿景

CnOps 智能运维与可观测社区是一个以"智能运维与可观测"为核心的开放、包容、分享的技术社区,旨在聚集运维专家、开发者和爱好者,共同探讨、学习和分享可观测最佳实践与最新技术,与众多技术社区合作互动,共同探讨交叉领域的技术挑战,推动可观测领域的创新与进步。

内容社区

  • 实践文章
  • 视频课程
  • 开源项目
  • 常见问答
  • 开发者工具

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

阿里云云原生公众号阿里云云原生
阿里云可观测公众号阿里云可观测

Copyright © 2026 CnOps 社区. All rights reserved.

首页问答什么是 Method Swizzling?iOS RUM SDK 用它采集哪些数据?

什么是 Method Swizzling?iOS RUM SDK 用它采集哪些数据?

#RUM#iOS#Method Swizzling#ObjC运行时#无侵入采集

agenticOps | 2026-05-23

提到 Method Swizzling 技术离不开 iOS 的 ObjC 运行时。iOS 开发的主要语言是 Objective-C 和 Swift,ObjC 是一门动态语言,在运行时会对变量的数据类型检查,同时根据函数名查找要调用的函数,这种特性使得 ObjC 比较灵活,SDK 可以在程序运行时动态修改一个方法的实现,从而达到数据采集和埋点插桩的目的。

Method Swizzling 被称为动态方法交换技术,用于改变一个已经存在的 selector 实现。基于此技术,SDK 可以在程序运行时通过改变 selector 所在 Class 的 method list 的映射,从而改变方法的调用,本质上是交换两个方法的 IMP(方法实现指针)。

通过 Method Swizzling,SDK 支持以下数据采集:

  • 网络请求数据采集:支持性能数据、状态码、错误原因、端到端链路打通等数据的采集。通过 Method Swizzling 对 URLSession 和 URLConnection 等网络库实现无侵入数据采集。
  • 页面数据采集:支持页面加载耗时、页面状态变化等数据的采集。
  • Action 数据采集:支持 UITableView 等控件的点击事件采集。
  • WebView 数据采集:结合 web 探针,支持应用内置 H5 页面数据的采集,包含网络资源请求、页面和路由切换、js 异常等。

推荐文章

超过 2000+ 位开发者正在阅读

给 OpenClaw 加上企业级 Memory

给 OpenClaw 加上企业级 Memory

4646 阅读

阿里云 STAROps 全域智能运维平台发布!

阿里云 STAROps 全域智能运维平台发布!

3453 阅读

阿里云正式发布 RCA Benchmark

阿里云正式发布 RCA Benchmark

2716 阅读

推荐视频

UModel 最佳实践 Vol.1 UModel 数据建模全景解读

UModel 最佳实践 Vol.1 UModel 数据建模全景解读

3854 观看50:35
云监控2.0全景:可观测范式升级与智能运维蓝图

云监控2.0全景:可观测范式升级与智能运维蓝图

2532 观看41:06

推荐工具

精选可观测领域开发者工具

云监

云监控 2.0 沙箱体验

7483 使用

免费

免费网络拨测工具

2746 使用