源码分析类的结构

通过x/4gx YDPerson.class 发现类也是有数据结构有内存
对象的内存里会存储很多的值像isa、成员变量,那么类会存储些什么?
YDPerson是一个类,而类在底层又是objc_class,于是查找objc底层源码

总结

objc_class是继承于objc_object的结构体,结构体内部存储的是一些成员变量例如从objc_object继承的isasuperclasscachebits
通过bits可以拿到class_rw_t,在class_rw_t里又可以获取到methodspropertiesprotocols等,因此bits使用来存储methodspropertiesprotocols等信息的,但怎么去获取这些信息呢?

__has_feature(ptrauth_calls)介绍
__has_feature:此函数的功能是判断编译器是否支持某个功能
ptrauth_calls: 指针身份验证,针对arm64e架构;使用Apple A12或更高版本A系列处理器的设备(如 iPhone XSiPhone XS Maxiphone XR 或更新的设备)支持arm64e架构

参考链接

你可能感兴趣的:(源码分析类的结构)