目标C:是否可用于ios?
- 我正在尝试为一个ios项目实施冒充。
- 场景: 在运行时定义控制器类
- 我意识到poseAsClass或class_poseAs不适用于ios,也不适用于macOX。
- 将非常感谢任何在ios中实施冒充的指示。 谢谢
如果您想要篡改OS /私有SDK提供的类,整个姿势/混合方法非常有用 – 但您通常不应该这样做,并且在您自己的代码中将其用作标准方法并不是一个好主意。
场景:在运行时定义控制器类
您通常可以通过使用抽象超类/接口/ @protocol来定义潜在控制器需要实现的接口,然后在运行时切换它们。
在你的情况下,你似乎有一个控制器充当真正的控制器的代理 。 你在技术上也不需要@protocol,因为UITableViewController
实际上是你的抽象超类,但你的代理最好是UITableViewController
并拥有视图,你的其他控制器最好是NSObject
子类,只需符合UITableView DataSource/Delegate
协议。
你应该研究Method Swizzling。 它可以帮助您在运行时更改function/function体。
这里有一个很棒的教程。