一、OC对象的本质探索
首先我们可以先做一些配置
1.打开终端执行 vim ~/.bash_profile 命令
图片1.png
2.进入编辑模式,输入:
alias rewriteoc='clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk'
图片2.png
3.保存退出然后执行: source ~/.bash_profile
4.打开终端进入项目目录执行:rewriteoc xxx.m ,生成 xxx.cpp 文件
图片3.png
如图所示我们在main.m中声明一个JPerson类
图片4.png
这里我们可以明显看到,对象在底层的本质就是结构体
图5.png
这里我们可以看出isa实际上是objc_class类型的结构体指针。