在 Swift 中实现 Method Swizzling 比 Objective-C 复杂一些,因为 Swift 有更严格的类型安全和运行时限制。以下是几种实现方式: 1. Objective-C Runtime + @objc 这是最常用的方法,需要方法标记为 : 使用时需要在 中调用: 2. 使用函数指针(更安全的方式) 3. Swift-specific Method Swizzling(推荐) 对于纯 Swift 类,可以使用函数指针和关联对象: 4. iOS/macOS API Hooking(系统框架) 对于系统框架方法,通常使用更安全的替代方案: 然后在 AppDelegate中启用: ⚠️ Important Considerations: 1. 线程安全: Method Swzzling应该在主线程执行且只执行一次。 2. 继承问题: Swzzling会影响所有子类。 3. 调试困难: Makes debugging harder due to changed behavior. 4. App Store审核: Apple may reject apps tha...