OC对象的本质

2019-09-26  本文已影响0人  测试开发雨辰
Objective-C的本质
一个OC对象在内存中的布局
#import <Foundation/Foundation.h>
#import <objc/runtime.h>
#import <malloc/malloc.h>

struct NSObject_IMPL {
    Class isa; //8个字节
};

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSObject *obj = [[NSObject alloc] init];
        
        //获得NSObject实例对象的成员变量所占用的大小 >>8
        NSLog(@"%zd",class_getInstanceSize([obj class]));
        
        //获得obj指针所指向内存的大小 >>16
        NSLog(@"%zd",malloc_size((__bridge const void *)(obj)));
        
    }
    return 0;
}
面试题
上一篇 下一篇

猜你喜欢

热点阅读