如果我有一个类B的实例,它是类A的子类,有没有办法让我将类B的实例转换为类A的实例而不显式编写代码来实现它?
我并不是指使用标准c语法简单地向下转发。
答案 0 :(得分:4)
您可以使用objc运行时执行此操作(请参阅Objective-C运行时引用中的object_setClass(id object, Class cls)
。但更重要的一点是,您几乎肯定不想这样做。您的子类不遵循Liskov Substituion Principle,它不应该是子类(即继承关系不合适,您应该选择其他一些设计)。您始终可以使用{{1}调用超类的方法实现来自您的子类。