iOS面试

iOS-面试题-详解+代码实践

2018-09-12  本文已影响56人  路飞_Luck
1. 一个NSObject对象占用多少内存?

代码解析

#import <objc/runtime.h>
#import <malloc/malloc.h>

// NSObject Implementation
struct NSObject_IMPL {
    Class isa; // 8个字节
};
// 指针
// typedef struct objc_class *Class;

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

运行结果

image.png
上一篇 下一篇

猜你喜欢

热点阅读