目标C:是否可用于ios?

  1. 我正在尝试为一个ios项目实施冒充。
  2. 场景: 在运行时定义控制器类
  3. 我意识到poseAsClass或class_poseAs不适用于ios,也不适用于macOX。
  4. 将非常感谢任何在ios中实施冒充的指示。 谢谢

如果您想要篡改OS /私有SDK提供的类,整个姿势/混合方法非常有用 – 但您通常不应该这样做,并且在您自己的代码中将其用作标准方法并不是一个好主意。

场景:在运行时定义控制器类

您通常可以通过使用抽象超类/接口/ @protocol来定义潜在控制器需要实现的接口,然后在运行时切换它们。

在你的情况下,你似乎有一个控制器充当真正的控制器的代理 。 你在技术上也不需要@protocol,因为UITableViewController实际上是你的抽象超类,但你的代理最好是UITableViewController并拥有视图,你的其他控制器最好是NSObject子类,只需符合UITableView DataSource/Delegate协议。

你应该研究Method Swizzling。 它可以帮助您在运行时更改function/function体。

这里有一个很棒的教程。