//实例对象(instance对象)
//isa指针
//变量
//类对象(Class对象)
//每个类有且只有一个类对象
//class对象在内存中存储的主要信息有:
//isa指针
//superclass指针
//类属性信息(@property), 类的对象信息(instance method)
//类的协议信息(protocol),成员变量信息(ivar)
//元类对象(meta class)
//每个类只有一个元类对象
//元类对象跟类对象内存结构是一样的
//包括:
//isa指针
//superclass指针
//类的类方法信息 (class method,+号开头)
#import <Foundation/Foundation.h>
#import <objc/runtime.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//实例对象(instance对象)
NSObject *obj1 = [[NSObject alloc] init];
NSObject *obj2 = [[NSObject alloc] init];
//类对象(Class对象)
Class objClass1 = [obj1 class]; //类对象
Class objClass2 = [obj2 class];
Class objClass3 = object_getClass(obj2);
Class objClass4 = object_getClass(obj1);
Class objClass5 = [NSObject class];
NSLog(@"%p", objClass1);
NSLog(@"%p", objClass2);
NSLog(@"%p", objClass3);
NSLog(@"%p", objClass4);
NSLog(@"%p", objClass5);
//元类对象(meta class对象)
Class metaClass = object_getClass([NSObject class]);
}
return 0;
}
–EOF–