41_iOS干货28_OC对象的分类,组成,获取方法

1,实例对象

1,组成

  • isa指针:所有继承自NSObject的对象都有
  • 成员变量

2,通过alloc来获取

 

2,类对象

1,组成:

  • 1,isa指针;
  • 2,superClass指针;
  • 3,类的属性信息;
  • 4,类的对象方法信息;
  • 5,类的协议信息;
  • 6,类的成员变量信息(名称,类型等,不包含值)

2,获取方法

  • 1,类的class方法:  [NSObject class]
  • 2,实例对象的class方法:  [object1 class]
  • 3,runTime方式:object_getClass(实例变量)

 

3,元类对象

1,组成:(与类对象的结构组成一致,都为class类型,其他的)

  • 1,isa指针;
  • 2,superClass指针;
  • 3,类的类方法信息;

2,获取方法

object_getClass(类对象)

 

3,判断方法,是否是元类对象

class_isMetaClass

 

4,object_getClass为什么能根据传入的值不一样,得到类对象和元类对象不用的结果?

原因:底层调用方法不一样,如下

 1.Class objc_getClass(const char *aClassName)
 1> 传入字符串类名
 2> 返回对应的类对象
 
 2.Class object_getClass(id obj)
 1> 传入的obj可能是instance对象、class对象、meta-class对象
 2> 返回值
 a) 如果是instance对象,返回class对象
 b) 如果是class对象,返回meta-class对象
 c) 如果是meta-class对象,返回NSObject(基类)的meta-class对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值