Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 是否可以将目标c中的对象降级为其超类?_Objective C_Casting_Object - Fatal编程技术网

Objective c 是否可以将目标c中的对象降级为其超类?

Objective c 是否可以将目标c中的对象降级为其超类?,objective-c,casting,object,Objective C,Casting,Object,如果我有一个类B的实例,它是类a的一个子类,那么有没有一种方法可以在不显式编写代码的情况下将类B的实例转换为类a的实例 我的意思不是简单地使用标准c语法进行向下转换。您可以使用objc运行时(请参阅object\u setClass(id-object,Class-cls)在Objective-C运行时参考中。但是,更重要的一点是,您几乎肯定不想这样做。如果您的子类不遵循,它不应该是子类(即继承关系不合适,您应该选择其他设计)。您始终可以从子类中使用[super-someMethod]调用超类的

如果我有一个类B的实例,它是类a的一个子类,那么有没有一种方法可以在不显式编写代码的情况下将类B的实例转换为类a的实例


我的意思不是简单地使用标准c语法进行向下转换。

您可以使用objc运行时(请参阅
object\u setClass(id-object,Class-cls)
在Objective-C运行时参考中。但是,更重要的一点是,您几乎肯定不想这样做。如果您的子类不遵循,它不应该是子类(即继承关系不合适,您应该选择其他设计)。您始终可以从子类中使用
[super-someMethod]
调用超类的方法实现。

您可以使用objc运行时执行此操作(请参阅
对象\u setClass(id对象,类cls)
在Objective-C运行时参考中。但是,更重要的一点是,您几乎肯定不想这样做。如果您的子类不遵循,它不应该是子类(即继承关系不合适,您应该选择其他设计)。您始终可以从子类中使用
[super-someMethod]
调用超类的方法实现