企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
object_getClass得到一个实例的类 ~~~ /** * Returns the class of an object. * * @param obj The object you want to inspect. * * @return The class object of which \e object is an instance, * or \c Nil if \e object is \c nil. */ OBJC_EXPORT Class object_getClass(id obj) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); ~~~ ~~~ #import <Foundation/Foundation.h> @interface Person : NSObject @property(nonatomic, assign) NSInteger age; @property(nonatomic, strong) NSString * name; @end ~~~ ~~~ #import "Person.h" @interface Person () @property(nonatomic, strong) NSString * sex; @end @implementation Person - (instancetype)init { self = [super init];     if (self) {         self.sex = @"-----------"; self.age = 19; self.name = @"sb"; }    return self; } @end ~~~ ~~~ #import "ViewController.h" #import <objc/runtime.h> #import "Person.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]; Class c1 = object_getClass(p1); NSLog(@"%@", c1); Person * p2 = [[[c1 class] alloc] init]; NSLog(@"%@", p2.name); } ~~~ 输出: ![](https://box.kancloud.cn/2016-05-05_572b01531d771.jpg)