43_iOS干货30_实际获取OC的三种对象的完整信息方法

1,实例对象信息

方法1:

  1. 地址:直接打印:p person
  2. 属性:直接打印:p person->_age
  3. isa指针的地址:直接打印p/x (long)person->isa

方法2:断点后光标放在实例对象上,可以显示对象地址,属性值,isa指针的值

方法3:利用nslog日志打印,%p打印出地址

 

2,类对象信息

1,地址:%p打印或者在调试结构区查看

2,查看源码,重写结构体信息,再将类对象强制转换获取,可以具体查看类对象中的结构

  • isa指针:
  • superClass指针:
  • 实例对象的相关信息:

 

3,元类对象

1,地址:%p打印或者在调试结构区查看

2,查看源码,重写结构体信息,,再将元类对象强制转换获取,可以具体查看元类对象中的结构

  • isa指针
  • superClass指针
  • 类对象的相关信息

 

4,注意

1,实例对象的isa指针,实际上是不等于类对象的地址,需要isa位与一个ISA_MASK

2,类对象的superClass指针,直接等于父类的类对象地址,不用位与计算

 

5,遇到的面试题

1,对象的isa指针指向哪里?

  1. instance对象的isa指向class对象
  2. class对象的isa指向meta-class对象
  3. meta-class对象的isa指向基类的meta-class对象
     

2,对象的isa指针指向哪里?

  1. instance对象的isa指向class对象
  2. class对象的isa指向meta-class对象
  3. meta-class对象的isa指向基类的meta-class对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值