您的位置:首页 > 移动开发 > Objective-C

object_getClass

2015-10-30 13:08 363 查看
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);

}


输出:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息