objective-c 覆盖系统方法

objective-c override system method

我发现一个 C++ 系统方法在 ios 中导致崩溃,我尝试调整该方法。但是,我不知道该怎么做,因为它是 c++ class 的一种方法。任何人都知道我是否可以这样做?

Method swizzling 是objective-c独有的(即使有也要小心使用),不适用于c++。

我想您无法访问 c++ class 的源代码。 那么在特定的c++-class处"exchange"实现一个方法的唯一方法就是派生一个subclass,重写该方法,然后确保subclass 被用来代替另一个 class。你仍然不太可能有机会;方法不是虚拟的,要替换的 class 以非多态方式使用,要替换的 class 已经有几个子 classes,这些点中的每一个都会阻止你从成功。

祝你好运!