A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

类的本质其实也是一个对象(类对象),是Class类型,可是Class不就是结构体指针的别名吗?为什么不叫结构体指针变量,我有点凌乱
类的结构体
  1. struct objc_class {
  2.     Class isa  OBJC_ISA_AVAILABILITY;

  3. #if !__OBJC2__
  4.     Class super_class                                        OBJC2_UNAVAILABLE;
  5.     const char *name                                         OBJC2_UNAVAILABLE;
  6.     long version                                             OBJC2_UNAVAILABLE;
  7.     long info                                                OBJC2_UNAVAILABLE;
  8.     long instance_size                                       OBJC2_UNAVAILABLE;
  9.     struct objc_ivar_list *ivars                             OBJC2_UNAVAILABLE;
  10.     struct objc_method_list **methodLists                    OBJC2_UNAVAILABLE;
  11.     struct objc_cache *cache                                 OBJC2_UNAVAILABLE;
  12.     struct objc_protocol_list *protocols                     OBJC2_UNAVAILABLE;
  13. #endif

  14. } OBJC2_UNAVAILABLE;
  15. /* Use `Class` instead of `struct objc_class *` */
复制代码
  1. /// An opaque type that represents an Objective-C class.
  2. typedef struct objc_class *Class;
复制代码

是不是我的理解出现问题了,还是这仅仅是一个定义



评分

参与人数 1黑马币 +6 收起 理由
同舟ing + 6 很给力!

查看全部评分

4 个回复

倒序浏览
我擦 完全看不懂啊  不过只要知道定义就好啦
回复 使用道具 举报
范文鹏 发表于 2015-9-16 01:02
我擦 完全看不懂啊  不过只要知道定义就好啦

今天老师说了,类的本质是对象,是一种特殊的对象。暂且这么理解
回复 使用道具 举报
Objective-C类是由Class类型来表示的,它实际上是一个指向objc_class结构体的指针。

就相同于是一种类型 而不再属于结构体了  好像OC上面有一段分类就是关于 各种体系的 忘了
回复 使用道具 举报
结构体指针是他的底层
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马