💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
object_setClass将一个对象设置为别的类类型,返回原来的Class ~~~ /** * Sets the class of an object. * * @param obj The object to modify. * @param cls A class object. * * @return The previous value of \e object's class, or \c Nil if \e object is \c nil. */ OBJC_EXPORT Class object_setClass(id obj, Class cls) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); ~~~ ~~~ #import "ViewController.h" #import <objc/runtime.h> #import "Person.h" #import "Dog.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. Person * p1 = [[Person alloc] init]; NSLog(@"p1 - %@", [p1 class]); Class c1 = object_setClass(p1, [Dog class]); NSLog(@"c1 - %@", [c1 class]); NSLog(@"p1 - %@", [p1 class]); } ~~~ 输出: ![](https://box.kancloud.cn/2016-05-05_572b01538a6a5.jpg)