【问题标题】:objective-c override system methodObjective-C 覆盖系统方法
【发布时间】:2016-12-18 14:09:10
【问题描述】:

我发现一个 c++ 系统方法会导致 ios 崩溃,我尝试调整该方法。但是,我不知道该怎么做,因为它是 c++ 类的方法。有人知道我是否可以这样做吗?

【问题讨论】:

    标签: objective-c runtime swizzle


    【解决方案1】:

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

    我想您无权访问 c++ 类的源代码。 那么,在特定 c++ 类中“交换”方法实现的唯一方法是派生一个子类,覆盖该方法,然后确保使用该子类而不是另一个类。你仍然不太可能有机会;方法不是虚拟的,要替换的类以非多态方式使用,要替换的类已经有几个子类,这些点中的每一个都会阻止你成功。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多